این سند الزامات مختص همه برنامههای توسعهیافته با «کیت توسعه نرمافزار Places» برای iOS را فهرست میکند، ازجمله سرویس «تکمیل خودکار جا» که بخشی از آن میانای برنامهسازی کاربردی است. اطلاعات عمومی بیشتر برای توسعهدهندگان Google Maps را میتوانید در شرایط خدمات Google Maps Platform پیدا کنید.
خطمشیها
این بخش خطمشیهای مربوط به «کیت توسعه نرمافزار مکانها» ویژه iOS را شرح میدهد. خطمشیها دستورالعملها و الزامات پیادهسازی عملی را ارائه میدهند تا به شما کمک کنند از «سرویس» بهدرستی و مطابق با انتظارات «پلاتفرم Google Maps» استفاده کنید.
ذخیرهسازی، ذخیره موقت، و استخراج دادهها
هنگام استفاده از «محتوای Google Maps» در برنامهتان، الزامات مدیریت داده را در بخش ۳.۲.۳ از شرایط خدمات پلاتفرم Google Maps و شرایط خاص سرویس پلاتفرم Google Maps دنبال کنید:
- محدودیتهای ذخیرهسازی در حافظه نهان و استخراج داده (بخش ۳.۲.۳ (الف) و (ب)): «محتوای Google Maps» را فقط بهصورت صریح و طبق آنچه در شرایط خاص سرویس Google Maps Platform مجاز شده است در حافظه نهان ذخیره یا نگهداری کنید. «محتوای Google Maps» را برای استفاده در خارج از «سرویسها» صادر، استخراج، یا جمعآوری نکنید. برای مثال، «محتوای Google Maps» را خارج از «سرویسها» پیشواکشی، نمایهگذاری، ذخیره، یا بازتوزیع نکنید؛ کاشیهای نقشه، تصاویر «نمای خیابان»، زمینکدها، مسیرها، نتایج ماتریس فاصله، اطلاعات جادهها، اطلاعات مکانها، مقادیر ارتفاع، یا جزئیات منطقه زمانی را بهصورت انبوه بارگیری نکنید؛ یا نامها، نشانیها، یا مرورهای کاربران کسبوکارها را کپی و ذخیره نکنید.
- محدودیتهای محتوای مشتقشده (بخش ۳.۲.۳(ج)): از «محتوای Google Maps» در برنامهتان طبق آنچه در شرایط خدمات Google Maps Platform مجاز شده است استفاده کنید. براساس «محتوای Google Maps» محتوا ایجاد نکنید. برای مثال، ویژگیها را از تصاویر ماهوارهای ردیابی یا دیجیتالی نکنید، مدلهای سهبعدی یا زمینی نسازید، از مقادیر طول و عرض جغرافیایی «مکانها» بهعنوان ورودی برای تحلیل نقطه در چندضلعی استفاده نکنید، از تصاویر «نمای خیابان» نمایه مکان نسازید، یا زمانهای رانندگی مبتنی بر نوشتار را به گفتار ترکیبی تبدیل نکنید.
برای کاهش تأخیر و هزینههای صورتحساب بدون ذخیره کردن دادههای محدودشده در حافظه نهان، از ماسکهای فیلد یا فهرستهای فیلد استفاده کنید تا فقط فیلدهایی را درخواست کنید که میانای کاربر شما نیاز دارد. شناسههای معاف مانند شناسه مکان را ذخیره کنید تا جزئیات جدید را هنگام تعامل کاربر با مکان واکشی کنید.
مهندسان پشتیبانی فنی Google نمیتوانند مشاوره حقوقی ارائه دهند یا برای «شرایط خدمات Google Maps Platform» استثنا قائل شوند. با مشاور حقوقیتان مشورت کنید تا ببینید آیا پیادهسازی شما با شرایط مطابقت دارد یا نه، یا اگر مورد استفاده شما به صدور پروانه سفارشی نیاز دارد، با بخش فروش تماس بگیرید.
استثنائات محدودیتهای ذخیره کردن در حافظه نهان
شرایط خاص سرویس پلاتفرم Google Maps استثناهای محدود زیر را برای ذخیرهسازی در حافظه نهان اعطا میکند:
- شناسههای مکان: شناسه مکان که برای
شناسایی منحصربهفرد مکان استفاده میشود، از
محدودیتهای ذخیرهسازی موقت مستثنی است.
بنابراین میتوانید مقادیر شناسه مکان را برای مدت نامحدود ذخیره کنید. شناسههای جا
در فیلد
idیاplace_idدر پاسخهای میانای برنامهسازی کاربردی برگردانده میشوند. در راهنمای «شناسههای مکان»، با نحوه ذخیره، بازآوری، و مدیریت شناسههای مکان آشنا شوید. - مختصات عرض و طول جغرافیایی: هنگام استفاده از سرویسهایی که این استثنا را در شرایط خاص سرویس Google Maps Platform اعطا میکنند، میتوانید مقادیر عرض جغرافیایی (
latitude) و طول جغرافیایی (longitude) را بهطور موقت تا ۳۰ روز تقویمی متوالی در حافظه نهان ذخیره کنید و پساز آن باید مختصات ذخیرهشده در حافظه نهان را حذف کنید:- Routes API، Route Optimization API، Directions API (قدیمی)، و Roads API
- Geocoding API، Geolocation API، و Address Validation API
- Places API، کیت میانای کاربر «جاها»، و کیت توسعه نرمافزار ناوبری
- دورههای ذخیرهسازی موقت مختص سرویس: شرایط مختص سرویس پلاتفرم Google Maps همچنین دورههای ذخیرهسازی موقت مختص فیلد و اهداف مجاز را برای Address Validation API، Air Quality API، Pollen API، Solar API، Weather API، و Places Aggregate API تعریف میکند.
کشورها و قلمروهای منطقه اقتصادی اروپا
این محصول برای مشتریانی که نشانی صورتحسابشان در منطقه اقتصادی اروپا (EEA) است، «شرایط خدمات» متفاوتی دارد و ممکن است عملکرد آن نیز متفاوت باشد. پیشاز ساختن با Google Maps Platform، شرایط و اطلاعات زیر را که مختص منطقه اقتصادی اروپا است مرور کنید:
- شرایط خدمات Google Maps Platform در منطقه اقتصادی اروپا
- شرایط خاص سرویس Google Maps Platform در منطقه اقتصادی اروپا
- پرسشگان منطقه اقتصادی اروپا
- الزامات ایمنی جادهای Google Maps Platform
اگر نشانی صورتحساب شما در منطقه اقتصادی اروپا نیست، شرایط خدمات زیر برای شما اعمال میشود:
الزامات ارجاع Google Maps
این بخش الزامات و دستورالعملهای ذکر منبع را برای نمایش Google Maps و محتوا ازطریق برنامههای شما ارائه میدهد.
نمونه اسناد
در زیر نمونهای از ارجاع برای «کیت میانای کاربر جاها» ارائه شده است.
نمایش ارجاع Google Maps
هنگام نمایش محتوا از میاناهای برنامهسازی کاربردی پلاتفرم Google Maps در برنامه یا وبسایت خود، باید الزامات ذکر منبع Google Maps را رعایت کنید. اگر «محتوا» در Google Map نشان داده میشود و ارجاع ازقبل نمایان است، لازم نیست ارجاع اضافی اضافه کنید.
ارجاع Google Maps اضافه شد
برای ارجاع Google Maps که قبلاً توسط «پلاتفرم Google Maps» در میانای کاربر ارائه شده است، مثلاً در «کیت میانای کاربر جاها»:
- صرفنظر از اینکه ارجاع در کجا نمایش داده میشود، ارجاع گنجاندهشده را برندارید. اسناد را تغییر ندهید، پنهان نکنید، یا مبهم نکنید و مطمئن شوید که بهوضوح در پسزمینه قابلمشاهده است.
- همیشه «محتوای Google Maps Platform» را بااستفاده از نشانههای میانای کاربری مانند حاشیه، رنگ پسزمینه، سایه، یا فضای خالی کافی بهصورت بصری از محتوای دیگر متمایز کنید.
- هنگام ایجاد تغییرات بصری، باید از همه الزامات ذکر منبع Google Maps پیروی کنید.
نشانواره Google Maps و ارجاع نوشتاری
درصورت امکان، ارجاع باید بهشکل نشانواره Google Maps باشد. در مواردی که فضا محدود است، نوشتار Google Maps قابلقبول است. همیشه باید برای کاربران نهایی مشخص باشد که کدام محتوا را Google Maps ارائه کرده است.
ارجاع نشانواره
برای استفاده از نشانواره Google Maps در برنامه یا وبسایتتان، این الزامات را دنبال کنید.بارگیری نشانوارههای Google Maps
از فایلهای نشانواره رسمی Google Maps استفاده کنید. نشانوارههای زیر را بارگیری کنید و دستورالعملهای این بخش را دنبال کنید.
بارگیری داراییهای ارجاع Google Mapsهنگام استفاده از نشانواره Google Maps، این دستورالعملها را دنبال کنید.
- به هیچ وجه نشانواره را تغییر ندهید.
- نسبت ابعادی نشانواره را حفظ کنید تا از اعوجاج جلوگیری شود.
- از نشانواره خطی روی پسزمینه شلوغ، مثل نقشه یا تصویر، استفاده کنید.
- از نشانواره بدون خط پیرامونی روی پسزمینه ساده، مثل رنگ یکدست یا گرادیان ملایم، استفاده کنید.
مشخصات اندازه نشانواره
این مشخصات اندازه را برای نشانواره Google Maps دنبال کنید:- حداقل ارتفاع نشانواره: ۱۶ پیکسل مستقل از تراکم
- حداکثر ارتفاع نشانواره: ۱۹ پیکسل مستقل از تراکم
- حداقل فضای خالی نشانواره: ۱۰ پیکسل مستقل از تراکم در چپ، راست، و بالا، ۵ پیکسل مستقل از تراکم در پایین
برای آشنایی با dp، به تراکم پیکسل در وبسایت Material Design مراجعه کنید.
دسترسپذیری نشانواره
این الزامات دسترسپذیری را برای نشانواره Google Maps دنبال کنید:- کنتراست دسترسپذیری بین نشانواره و پسزمینه را حفظ کنید.
- برچسب دسترسپذیری با نوشتار Google Maps اضافه کنید.
انتساب نوشتار
اگر اندازه میانای شما از استفاده از نشانواره Google Maps پشتیبانی نمیکند، میتوانید Google Maps را بهصورت نوشتاری بنویسید. این دستورالعملها را دنبال کنید:
- به هیچ وجه نوشتار Google Maps را تغییر ندهید:
- حروف بزرگ و کوچک Google Maps را تغییر ندهید
- Google Maps را در چند خط ننویسید
- Google Maps را به زبان دیگری بومیسازی نکنید.
- بااستفاده از مشخصه HTML
translate="no"، از ترجمه Google Maps توسط مرورگرها جلوگیری کنید.
نوشتار Google Maps را همانطور که در جدول زیر شرح داده شده است سبکبندی کنید:
الزامات سبک نوشتار Google Maps دارایی سبک خانواده قلم Roboto. بار کردن قلم اختیاری است. خانواده قلم جایگزین هر قلم سنسریف نوشتار اصلی که قبلاً در محصولتان استفاده شده است یا «سنسریف» برای فراخوانی قلم پیشفرض سیستم سبک قلم معمولی وزن قلم ۴۰۰ رنگ قلم سفید، سیاه (#1F1F1F)، یا خاکستری (#5E5E5E). کنتراست قابلدسترس (۴.۵:۱) را درمقابل پسزمینه حفظ کنید. اندازه قلم حداقل اندازه قلم: ۱۲ اسپی
حداکثر اندازه قلم: ۱۶ اسپی
برای آشنایی با اسپی، به واحدهای اندازه قلم در وبسایت Material Design مراجعه کنید.فاصله حروف معمولی
سرویس مقایسه قیمت نمونه
CSS زیر Google Maps را با سبک و رنگ تایپوگرافی مناسب در پسزمینه سفید یا روشن ارائه میکند.
@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap'); .GMP-attribution { font-family: Roboto, Sans-Serif; font-style: normal; font-weight: 400; font-size: 1rem; letter-spacing: normal; white-space: nowrap; color: #5e5e5e; }
الزامات دیداری
این الزامات را برای پردازش بصری ارجاع Google Maps دنبال کنید.نشان انتساب را نزدیک بالا یا پایین محتوا و در همان ظرف دیداری قرار دهید. برای یک خط محتوا، ارجاع میتواند در سمت راست یا چپ قرار گیرد.
بااستفاده از نشانههای میانای کاربری مانند حاشیه، رنگ پسزمینه، سایه، یا فضای سفید کافی، «محتوای پلاتفرم Google Maps» را بهصورت دیداری از محتوای دیگر متمایز کنید.
- با نسبت دادن Google Maps به محتوای غیر از «پلاتفرم Google Maps»، آن را بهاشتباه معرفی نکنید.
- تأیید کنید که ارجاع همیشه قابلمشاهده و خوانا باشد. هرگز آن را حذف، پنهان، یا مبهم نکنید یا تغییر ندهید.
شکلهای زیر نمونههایی از این الزامات بصری را نشان میدهد.
ارائهدهندگان دادههای طرف سوم
برخیاز دادهها و تصاویر موجود در محصولات نقشهبرداری ما از ارائهدهندگانی غیراز Google دریافت میشود. برای برخیاز محصولات، مانند Map Tiles API، ممکن است ارجاع لازم به ارائهدهنده داده طرف سوم را دراختیارتان قرار دهیم. وقتی این کار را انجام میدهیم، نوشتار ارجاع شما باید نام «Google Maps» و ارائهدهنده(های) داده مربوطه را ذکر کند، مانند «دادههای نقشه: Google، Maxar Technologies». وقتی Google ارجاع به طرف سوم ارائه میدهد، فقط گنجاندن «Google Maps» یا نشانواره Google ارجاع مناسبی نیست.
سایر الزامات ذکر منبع
ارجاعها به ارائهدهندگان شخص ثالث حاوی محتوا و پیوندهایی است که باید آنها را در قالبی که ارائه شدهاند به کاربر نمایش دهید. Google توصیه میکند برنامهتان این اطلاعات را زیر جزئیات مکان نشان دهد.
ارجاعهای طرف سوم که توسط میانای برنامهسازی کاربردی برگردانده میشود شامل ارجاع Google نیست. باید خودتان این ذکر منبع را اضافه کنید، همانطور که در نمایش نشانواره Google و ذکر منبع توضیح داده شده است.
برای بازیابی ارجاعهای طرف سوم برای یک مکان یا مجموعهای از مکانها، این دستورالعملها را دنبال کنید.
بازیابی ارجاعها برای یک مکان
وقتی مکانی را با دریافت مکان با شناسه بازیابی میکنید، میتوانید ارجاعهای آن مکان را از ویژگی attributions در GMSPlace بازیابی کنید.
attributions بهعنوان شیء
NSAttributedString ارائه میشود.
بازیابی منبعهای مجموعهای از مکانها
اگر برنامهتان اطلاعاتی را که با درخواست
مکان فعلی دستگاه بهدست آمده است نمایش میدهد، برنامه باید
ارجاعهای طرف سوم را برای جزئیات مکان نمایشدادهشده نشان دهد. میتوانید ارجاعهای همه مکانهای بازیابیشده در درخواست را از ویژگی attributions در GMSPlaceLikelihoodList بازیابی کنید.
attributions بهعنوان یک شیء NSAttributedString ارائه میشود که میتوانید به همان روشی که برای attributions در یک مکان واحد در بالا توضیح داده شد، به آن دسترسی داشته باشید و آن را نمایش دهید.
اسناد نتایج جستجو
در اروپا، هنگام استفاده از رتبهبندی بدون تغییر Google، محصولات جستجو باید نوشتار توضیحی داشته باشند که بیشتر از ۱ کلیک فاصله نداشته باشد و عوامل اصلی و وزن عوامل اصلی را که رتبهبندی نتایج جستجو را تعیین میکنند شرح دهد. نوشتار توضیحی:
سرصفحه: درباره این نتایج
متن اصلی: وقتی در اطراف جایی دنبال کسبوکار یا مکانی میگردید، Google Maps به شما نتایج محلی را نشان میدهد. عوامل زیادی - ارتباط درجه اول داشتن، فاصله، و برجسته بودن - ترکیب میشوند تا در یافتن بهترین نتایج برای شما کمک کنند.
دکمه ۱: بیشتر بدانید
نوشتار «بیشتر بدانید» باید به مقاله «مرکز راهنمایی» پیوند داده شود.
دکمه ۲: تأیید
نمایش ارجاعها برای عکس
اگر برنامهتان عکس نمایش میدهد، باید هرگونه attributions و authorAttributions را برای هر عکسی که آنها را دارد نشان دهید.
- برای دسترسی به هرگونه ارجاع، از
GMSPlacePhotoMetadata.attributionsاستفاده کنید. این ویژگیNSAttributedStringاست، یا اگر ارجاعی برای نمایش وجود نداشته باشد،nilاست. - برای دسترسی به هرگونه ارجاع به نویسنده، از
GMSPlacePhotoMetadata.authorAttributionsاستفاده کنید. این ویژگی حاوی آرایهای از اشیایGMSPlaceAuthorAttributionاست.
Swift
GMSPlacesClient.sharedClient().lookUpPhotosForPlaceID(placeID) { (photos, error) -> Void in if let error = error { // TODO: handle the error. print("Error: \(error.description)") } else { // Get attribution for the first photo in the list. if let photo = photos?.results.first { let attributions = photo.attributions } } }
آبجکتیو-سی
[[GMSPlacesClient sharedClient] lookUpPhotosForPlaceID:placeID callback:^(GMSPlacePhotoMetadataList *_Nullable photos, NSError *_Nullable error) { if (error) { // TODO: handle the error. NSLog(@"Error: %@", [error description]); } else { // Get attribution for the first photo in the list. if (photos.results.count > 0) { GMSPlacePhotoMetadata *photo = photos.results.firstObject; NSAttributedString *attributions = photo.attributions; } } }];
نمایش مرور
یک شیء GMSPlace میتواند حداکثر پنج مرور داشته باشد، که هر مرور با یک شیء GMSPlaceReview نشان داده میشود. میتوانید
این مرورها را بهطور اختیاری در برنامهتان نمایش دهید.
هنگام نمایش مرورهای ارائهشده توسط کاربران Google، باید نام نویسنده را در مجاورت آن قرار دهید. درصورت دردسترس بودن در فیلد ارجاع به نویسنده
شیء GMSPlaceReview، توصیه میکنیم عکس نویسنده و پیوند به نمایه او را نیز اضافه کنید. تصویر زیر نمونهای از مرور یک پارک را نشان میدهد:

Google همچنین توصیه میکند که نحوه مرتبسازی مرورها را برای کاربر نهایی نمایش دهید.
برای دسترسی به مرورها:
Swift
// Define a Place ID. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let myProperties: [GMSPlaceProperty] = [.name, .website, .reviews] // Create the GMSFetchPlaceRequest object. let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties) client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { let firstReview: GMSPlaceReview = place.reviews![0] // Use firstReview to access review text, authorAttribution, and other fields. } })
آبجکتیو-سی
// Define a Place ID. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return, including reviews. NSArray<GMSPlaceProperty *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite,GMSPlacePropertyReviews]; GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties]; [placesClient fetchPlaceWithRequest: fetchPlaceRequest, callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) { if (error) { // TODO: handle the error. NSLog(@"Error: %@", [error description]); } else { // Get first review. GMSPlaceReview *firstReview = [place reviews][0]; // Use firstReview to access review text, authorAttribution, and other fields. } }];
نمایش ارجاعهای طرف سوم
ارجاعها به ارائهدهندگان طرف سوم بهصورت اشیاء NSAttributedString ارائه میشوند که
حاوی محتوا و پیوندهایی هستند که باید آنها را حفظ کنید و به کاربر نمایش دهید.
روش توصیهشده برای نمایش ارجاعها استفاده از UITextView است، زیرا پیوندها در ارجاعها باید کار کنند.
برای اطمینان از اینکه پیوندها کار میکنند، نمایندهای را در UITextView تنظیم کنید و روش shouldInteractWithURL مربوط به UITextViewDelegate را برای برگرداندن YES تنظیم کنید.
Swift
... self.attributionTextView.delegate = self ... // MARK: - UITextViewDelegate func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool { // Make links clickable. return true }
آبجکتیو-سی
... self.attributionTextView.delegate = self; ... #pragma mark - UITextViewDelegate - (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange { // Make links clickable. return YES; }
نمونهای از ارجاع طرف سوم
ارجاع شخص ثالث معمولاً شامل نوشتار با پیوند است. برای مثال:
فهرستگانهای شرکت نمونه
در مثال بالا، محدوده نوشتار Example Company با
مشخصه NSLink پوشش داده شده است.
تکمیل خودکار برای نشانیهای کاربر نهایی
وقتی کاربر نهایی از عملکرد «تکمیل خودکار» در «برنامه مشتری» شما برای تایپ کردن نشانی خیابان استفاده میکند و آن نشانی خیابان میتوانست بهطور کامل و دقیق توسط آن کاربر نهایی بدون «تکمیل خودکار» ارائه شود، نشانی انتخابشده کاربر نهایی مشمول محدودیتهای «محتوای Google Maps» در «قرارداد پلاتفرم Google Maps» شما نمیشود. این استثنا فقط برای نشانی خیابان انتخابشده توسط کاربر نهایی و صرفاً برای تراکنش خاص آن کاربر نهایی اعمال میشود؛ این استثنا برای فهرست نشانیهای پیشنهادی ارائهشده توسط عملکرد «تکمیل خودکار» یا برای «محتوای Google Maps» دیگر اعمال نمیشود. این استثنا برای هیچکدام از عملکردهای جستجوی نشانی یا نقطه موردعلاقه که توسط دیگر سرویسهای «پلاتفرم Google Maps» ارائه میشود اعمال نمیشود.

در تصویر قبلی، فهرست نشانی در سمت راست همچنان مشمول محدودیتهای «محتوای Google Maps» است. وقتی کاربر نهایی نشانی انتخابیاش را انتخاب میکند، آن نشانی صرفاً برای تراکنش مربوطه آن کاربر نهایی مشمول محدودیتهای «محتوای Google Maps» نمیشود.