این راهنما چندین استراتژی را برای بهینهسازی استفاده از APIهای نقشههای گوگل از نظر امنیت، عملکرد و میزان مصرف شرح میدهد.
امنیت
بررسی بهترین شیوههای امنیتی
کلیدهای API، اعتبارنامههای پروژهمحوری هستند که نیازمند همان اقدامات احتیاطی مانند شناسههای کاربری و رمزهای عبور هستند. برای ایمنسازی کلیدهای خود در برابر استفاده ناخواسته که میتواند منجر به استفاده بیش از حد از سهمیه و هزینههای غیرمنتظره برای حساب شما شود، بهترین شیوههای امنیتی API را مرور کنید.
استفاده از کلیدهای API برای دسترسی به APIهای نقشهها
کلیدهای API روش احراز هویت ترجیحی برای دسترسی به APIهای نقشههای گوگل هستند. در حالی که استفاده از شناسههای کلاینت هنوز پشتیبانی میشود، کلیدهای API از کنترلهای امنیتی دقیقتری پشتیبانی میکنند و میتوانند برای کار با آدرسهای وب خاص، آدرسهای IP و SDKهای موبایل (اندروید و iOS) تنظیم شوند. برای کسب اطلاعات در مورد ایجاد و ایمنسازی یک کلید API، به صفحه "استفاده از کلید API" برای هر API یا SDK مراجعه کنید. (به عنوان مثال، برای API جاوا اسکریپت نقشهها، به صفحه آن در مورد استفاده از کلید API مراجعه کنید.)
عملکرد
استفاده از backoff نمایی برای مدیریت خطاها
اگر برنامههای شما به دلیل تلاشهای بیش از حد برای فراخوانی یک API در مدت زمان کوتاه، مانند خطاهای سهمیهبندی، با خطاهایی مواجه میشوند، استفاده از backoff نمایی را برای پردازش درخواستها در نظر بگیرید. backoff نمایی برای خطاهایی در حدود ۵۰۰ مورد مفید است.
 به طور خاص، سرعت اجرای کوئریهای خود را تنظیم کنید. در کد خود، یک دوره انتظار S ثانیهای بین کوئریها اضافه کنید. اگر کوئری همچنان منجر به خطای سهمیهبندی شد، دوره انتظار را دو برابر کنید و سپس کوئری دیگری ارسال کنید. تنظیم دوره انتظار را تا زمانی که کوئری بدون خطا برگردد، ادامه دهید. 
ارسال درخواستهای تعامل با کاربر بر اساس تقاضا
 درخواستهایی که به APIها ارسال میشوند و شامل تعامل کاربر هستند، باید فقط بر اساس تقاضا ارسال شوند. این به معنای انتظار برای انجام عملی توسط کاربر نهایی (مانند on-click ) برای شروع درخواست API است، سپس از نتایج برای بارگذاری نقشه، تعیین مقصد یا نمایش اطلاعات مناسب استفاده میشود. استفاده از رویکرد بر اساس تقاضا، از درخواستهای غیرضروری به APIها جلوگیری میکند و مصرف API را کاهش میدهد. 
جلوگیری از نمایش محتوای همپوشانی هنگام حرکت نقشه
 از استفاده از Draw() برای نمایش محتوای پوششی سفارشی روی نقشه همزمان با حرکت دادن نقشه توسط کاربر خودداری کنید. از آنجایی که هر بار که کاربر نقشه را حرکت میدهد، نقشه دوباره ترسیم میشود، قرار دادن محتوای پوششی روی نقشه به طور همزمان میتواند باعث تأخیر یا لکنت بصری شود. فقط زمانی محتوای پوششی را از نقشه اضافه یا حذف کنید که کاربر حرکت افقی یا بزرگنمایی را متوقف کرده باشد. 
اجتناب از عملیات فشرده در متدهای Draw
 به عنوان یک قاعده کلی، بهتر است از عملیات غیر ترسیمی با عملکرد بالا در متد Draw() خودداری کنید. به عنوان مثال، از موارد زیر در کد متد Draw() خود اجتناب کنید:
- کوئریهایی که حجم زیادی از محتوا را برمیگردانند.
 - تغییرات زیادی در دادههای نمایش داده شده ایجاد شده است.
 - دستکاری بسیاری از عناصر مدل شیء سند (DOM).
 
این عملیات میتوانند عملکرد را کند کرده و هنگام رندر نقشه، تأخیر یا لکنت بصری ایجاد کنند.
استفاده از تصاویر رستری برای نشانگرها
هنگام افزودن نشانگرها برای شناسایی مکان روی نقشه، از تصاویر رستری، مانند تصاویر با فرمت .PNG یا .JPG، استفاده کنید. از تصاویر گرافیک برداری مقیاسپذیر (SVG) استفاده نکنید، زیرا رندر تصاویر SVG میتواند هنگام ترسیم مجدد نقشه باعث ایجاد تأخیر شود.
بهینهسازی نشانگرها
بهینهسازی با رندر کردن بسیاری از نشانگرها به عنوان یک عنصر استاتیک واحد، عملکرد را افزایش میدهد. این در مواردی که تعداد زیادی نشانگر مورد نیاز است، مفید است. به طور پیشفرض، API Maps JavaScript تصمیم میگیرد که آیا یک نشانگر بهینهسازی شود یا خیر. وقتی تعداد زیادی نشانگر وجود دارد، API Maps JavaScript سعی میکند نشانگرها را با بهینهسازی رندر کند. همه نشانگرها را نمیتوان بهینهسازی کرد. در برخی شرایط، API Maps JavaScript ممکن است نیاز داشته باشد نشانگرها را بدون بهینهسازی رندر کند. رندر بهینه را برای GIFها یا PNGهای متحرک غیرفعال کنید، یا زمانی که هر نشانگر باید به عنوان یک عنصر DOM جداگانه رندر شود.
ایجاد خوشهها برای مدیریت نمایش نشانگر
برای کمک به مدیریت نمایش نشانگرها برای شناسایی مکانها روی نقشه، با استفاده از کتابخانه Marker Clusterer یک خوشه نشانگر ایجاد کنید. کتابخانه Marker Clusterer شامل گزینههایی برای موارد زیر است:
- اندازه شبکه، برای مشخص کردن تعداد نشانگرهایی که باید در یک خوشه گروهبندی شوند.
 - حداکثر بزرگنمایی، برای مشخص کردن حداکثر سطح بزرگنمایی که خوشه در آن نمایش داده میشود.
 - مسیرهای تصویر، برای استفاده از تصاویر گرافیکی به عنوان نمادهای نشانگر.
 
مصرف
برای اطلاعات بیشتر در مورد مدیریت هزینههای پلتفرم نقشههای گوگل، از جمله ایجاد بودجه، تغییر سهمیهها و تنظیم هشدارها، به مدیریت هزینهها مراجعه کنید.
،این راهنما چندین استراتژی را برای بهینهسازی استفاده از APIهای نقشههای گوگل از نظر امنیت، عملکرد و میزان مصرف شرح میدهد.
امنیت
بررسی بهترین شیوههای امنیتی
کلیدهای API، اعتبارنامههای پروژهمحوری هستند که نیازمند همان اقدامات احتیاطی مانند شناسههای کاربری و رمزهای عبور هستند. برای ایمنسازی کلیدهای خود در برابر استفاده ناخواسته که میتواند منجر به استفاده بیش از حد از سهمیه و هزینههای غیرمنتظره برای حساب شما شود، بهترین شیوههای امنیتی API را مرور کنید.
استفاده از کلیدهای API برای دسترسی به APIهای نقشهها
کلیدهای API روش احراز هویت ترجیحی برای دسترسی به APIهای نقشههای گوگل هستند. در حالی که استفاده از شناسههای کلاینت هنوز پشتیبانی میشود، کلیدهای API از کنترلهای امنیتی دقیقتری پشتیبانی میکنند و میتوانند برای کار با آدرسهای وب خاص، آدرسهای IP و SDKهای موبایل (اندروید و iOS) تنظیم شوند. برای کسب اطلاعات در مورد ایجاد و ایمنسازی یک کلید API، به صفحه "استفاده از کلید API" برای هر API یا SDK مراجعه کنید. (به عنوان مثال، برای API جاوا اسکریپت نقشهها، به صفحه آن در مورد استفاده از کلید API مراجعه کنید.)
عملکرد
استفاده از backoff نمایی برای مدیریت خطاها
اگر برنامههای شما به دلیل تلاشهای بیش از حد برای فراخوانی یک API در مدت زمان کوتاه، مانند خطاهای سهمیهبندی، با خطاهایی مواجه میشوند، استفاده از backoff نمایی را برای پردازش درخواستها در نظر بگیرید. backoff نمایی برای خطاهایی در حدود ۵۰۰ مورد مفید است.
 به طور خاص، سرعت اجرای کوئریهای خود را تنظیم کنید. در کد خود، یک دوره انتظار S ثانیهای بین کوئریها اضافه کنید. اگر کوئری همچنان منجر به خطای سهمیهبندی شد، دوره انتظار را دو برابر کنید و سپس کوئری دیگری ارسال کنید. تنظیم دوره انتظار را تا زمانی که کوئری بدون خطا برگردد، ادامه دهید. 
ارسال درخواستهای تعامل با کاربر بر اساس تقاضا
 درخواستهایی که به APIها ارسال میشوند و شامل تعامل کاربر هستند، باید فقط بر اساس تقاضا ارسال شوند. این به معنای انتظار برای انجام عملی توسط کاربر نهایی (مانند on-click ) برای شروع درخواست API است، سپس از نتایج برای بارگذاری نقشه، تعیین مقصد یا نمایش اطلاعات مناسب استفاده میشود. استفاده از رویکرد بر اساس تقاضا، از درخواستهای غیرضروری به APIها جلوگیری میکند و مصرف API را کاهش میدهد. 
جلوگیری از نمایش محتوای همپوشانی هنگام حرکت نقشه
 از استفاده از Draw() برای نمایش محتوای پوششی سفارشی روی نقشه همزمان با حرکت دادن نقشه توسط کاربر خودداری کنید. از آنجایی که هر بار که کاربر نقشه را حرکت میدهد، نقشه دوباره ترسیم میشود، قرار دادن محتوای پوششی روی نقشه به طور همزمان میتواند باعث تأخیر یا لکنت بصری شود. فقط زمانی محتوای پوششی را از نقشه اضافه یا حذف کنید که کاربر حرکت افقی یا بزرگنمایی را متوقف کرده باشد. 
اجتناب از عملیات فشرده در متدهای Draw
 به عنوان یک قاعده کلی، بهتر است از عملیات غیر ترسیمی با عملکرد بالا در متد Draw() خودداری کنید. به عنوان مثال، از موارد زیر در کد متد Draw() خود اجتناب کنید:
- کوئریهایی که حجم زیادی از محتوا را برمیگردانند.
 - تغییرات زیادی در دادههای نمایش داده شده ایجاد شده است.
 - دستکاری بسیاری از عناصر مدل شیء سند (DOM).
 
این عملیات میتوانند عملکرد را کند کرده و هنگام رندر نقشه، تأخیر یا لکنت بصری ایجاد کنند.
استفاده از تصاویر رستری برای نشانگرها
هنگام افزودن نشانگرها برای شناسایی مکان روی نقشه، از تصاویر رستری، مانند تصاویر با فرمت .PNG یا .JPG، استفاده کنید. از تصاویر گرافیک برداری مقیاسپذیر (SVG) استفاده نکنید، زیرا رندر تصاویر SVG میتواند هنگام ترسیم مجدد نقشه باعث ایجاد تأخیر شود.
بهینهسازی نشانگرها
بهینهسازی با رندر کردن بسیاری از نشانگرها به عنوان یک عنصر استاتیک واحد، عملکرد را افزایش میدهد. این در مواردی که تعداد زیادی نشانگر مورد نیاز است، مفید است. به طور پیشفرض، API Maps JavaScript تصمیم میگیرد که آیا یک نشانگر بهینهسازی شود یا خیر. وقتی تعداد زیادی نشانگر وجود دارد، API Maps JavaScript سعی میکند نشانگرها را با بهینهسازی رندر کند. همه نشانگرها را نمیتوان بهینهسازی کرد. در برخی شرایط، API Maps JavaScript ممکن است نیاز داشته باشد نشانگرها را بدون بهینهسازی رندر کند. رندر بهینه را برای GIFها یا PNGهای متحرک غیرفعال کنید، یا زمانی که هر نشانگر باید به عنوان یک عنصر DOM جداگانه رندر شود.
ایجاد خوشهها برای مدیریت نمایش نشانگر
برای کمک به مدیریت نمایش نشانگرها برای شناسایی مکانها روی نقشه، با استفاده از کتابخانه Marker Clusterer یک خوشه نشانگر ایجاد کنید. کتابخانه Marker Clusterer شامل گزینههایی برای موارد زیر است:
- اندازه شبکه، برای مشخص کردن تعداد نشانگرهایی که باید در یک خوشه گروهبندی شوند.
 - حداکثر بزرگنمایی، برای مشخص کردن حداکثر سطح بزرگنمایی که خوشه در آن نمایش داده میشود.
 - مسیرهای تصویر، برای استفاده از تصاویر گرافیکی به عنوان نمادهای نشانگر.
 
مصرف
برای اطلاعات بیشتر در مورد مدیریت هزینههای پلتفرم نقشههای گوگل، از جمله ایجاد بودجه، تغییر سهمیهها و تنظیم هشدارها، به مدیریت هزینهها مراجعه کنید.