راهنمای بهینه سازی

این راهنما چندین استراتژی را برای بهینه‌سازی استفاده از Google Maps API از نظر امنیت، عملکرد و مصرف شرح می‌دهد.

امنیت

بررسی بهترین شیوه های امنیتی

کلیدهای API اعتبارنامه‌های پروژه محور هستند که مستحق اقدامات احتیاطی مشابه شناسه‌های کاربری و رمز عبور هستند. بهترین روش‌های امنیتی API را مرور کنید تا کلیدهای خود را در برابر استفاده ناخواسته ایمن کنید که می‌تواند منجر به استفاده غیرمجاز از سهمیه و هزینه‌های غیرمنتظره از حساب شما شود.

استفاده از کلیدهای API برای دسترسی به Maps API

کلیدهای API روش احراز هویت ترجیحی برای دسترسی به APIهای Google Maps هستند. در حالی که استفاده از شناسه های مشتری همچنان پشتیبانی می شود، کلیدهای API از کنترل های امنیتی دقیق تری پشتیبانی می کنند و می توانند برای کار با آدرس های وب خاص، آدرس های IP و SDK های تلفن همراه (Android و iOS) تنظیم شوند. برای اطلاعات در مورد ایجاد و ایمن کردن یک کلید API، به صفحه «استفاده از کلید API» برای هر API یا SDK بروید. (به عنوان مثال، برای Maps JavaScript API، از صفحه آن در استفاده از کلید API دیدن کنید.)

عملکرد

استفاده از عقب نشینی نمایی برای رسیدگی به خطاها

اگر برنامه‌های شما به دلیل تلاش‌های بیش از حد برای فراخوانی یک API در مدت زمان کوتاهی، خطاهایی مانند خطاهای سهمیه‌ای را تجربه می‌کنند، برای اجازه دادن به پردازش درخواست‌ها، از عقب‌نشینی نمایی استفاده کنید.

عقب نشینی نمایی بیشتر برای خطاهای 500 مفید است. برای اطلاعات بیشتر، به مدیریت کدهای وضعیت بازگشت HTTP مراجعه کنید.

به طور خاص، سرعت درخواست های خود را تنظیم کنید. در کد خود، یک دوره انتظار S ثانیه بین پرس و جوها اضافه کنید. اگر پرس و جو همچنان منجر به خطای سهمیه می شود، مدت زمان انتظار را دو برابر کنید و سپس درخواست دیگری ارسال کنید. تنظیم دوره انتظار را تا زمانی که پرس و جو بدون خطا برگردد ادامه دهید.

ارسال درخواست های تعامل کاربر در صورت تقاضا

درخواست‌هایی به API‌هایی که شامل تعامل کاربر می‌شوند باید فقط در صورت درخواست ارسال شوند. این به این معنی است که منتظر بمانید تا کاربر نهایی یک عمل (مانند on-click ) را برای شروع درخواست API انجام دهد، سپس از نتایج برای بارگیری نقشه، تعیین مقصد یا نمایش اطلاعات مناسب استفاده کنید. استفاده از رویکرد درخواستی از درخواست‌های غیرضروری به APIها جلوگیری می‌کند و مصرف API را کاهش می‌دهد.

اجتناب از نمایش محتوای همپوشانی زمانی که نقشه در حال حرکت است

از استفاده از Draw() برای نمایش محتوای همپوشانی سفارشی روی نقشه در همان زمانی که کاربر ممکن است نقشه را جابجا کند، خودداری کنید. از آنجایی که هر بار که کاربر نقشه را جابه‌جا می‌کند، نقشه دوباره ترسیم می‌شود، قرار دادن محتوای هم‌زمان روی نقشه می‌تواند باعث تاخیر یا لکنت بصری شود. فقط زمانی محتوای همپوشانی را از نقشه اضافه یا حذف کنید که کاربر حرکت یا بزرگنمایی را متوقف کند.

اجتناب از عملیات فشرده در روش های Draw

به عنوان یک قاعده کلی، اجتناب از عملیات غیر ترسیمی فشرده در یک روش Draw() تمرین خوبی است. به عنوان مثال، در کد متد Draw() از موارد زیر اجتناب کنید:

  • کوئری هایی که حجم زیادی از محتوا را برمی گرداند.
  • تغییرات زیادی در داده های نمایش داده می شود.
  • دستکاری بسیاری از عناصر Document Object Model (DOM).

این عملیات می تواند عملکرد را کاهش دهد و در هنگام نمایش نقشه، تاخیر یا لکنت بصری را ایجاد کند.

استفاده از تصاویر شطرنجی برای نشانگرها

هنگام افزودن نشانگرها برای شناسایی مکان روی نقشه، از تصاویر شطرنجی، مانند تصاویر با فرمت PNG. یا JPG. استفاده کنید. از استفاده از تصاویر گرافیکی برداری مقیاس پذیر (SVG) خودداری کنید، زیرا رندر کردن تصاویر SVG می تواند در هنگام ترسیم مجدد نقشه، تاخیر ایجاد کند.

بهینه سازی نشانگرها

بهینه سازی عملکرد را با ارائه بسیاری از نشانگرها به عنوان یک عنصر ثابت افزایش می دهد. این در مواردی که به تعداد زیادی نشانگر نیاز است مفید است. به طور پیش فرض، Maps JavaScript API تصمیم می گیرد که آیا یک نشانگر بهینه شود یا خیر. هنگامی که تعداد زیادی نشانگر وجود دارد، Maps JavaScript API سعی می کند نشانگرها را با بهینه سازی ارائه کند. همه نشانگرها را نمی توان بهینه کرد. در برخی شرایط، Maps JavaScript API ممکن است نیاز به ارائه نشانگرها بدون بهینه سازی داشته باشد. غیرفعال کردن رندر بهینه برای GIF یا PNG متحرک، یا زمانی که هر نشانگر باید به عنوان یک عنصر DOM جداگانه ارائه شود.

ایجاد خوشه ها برای مدیریت نمایش نشانگر

برای کمک به مدیریت نمایش نشانگرها برای شناسایی مکان ها بر روی نقشه، با استفاده از کتابخانه نشانگر خوشه، یک خوشه نشانگر ایجاد کنید. کتابخانه Marker Clusterer شامل گزینه هایی برای موارد زیر است:

  • اندازه شبکه، برای تعیین تعداد نشانگرها برای گروه بندی در یک خوشه.
  • حداکثر زوم، برای تعیین حداکثر سطح بزرگنمایی که در آن خوشه نمایش داده شود.
  • مسیرهای تصویر، برای استفاده از تصاویر گرافیکی به عنوان نمادهای نشانگر.

مصرف

برای اطلاعات در مورد مدیریت هزینه‌های پلتفرم نقشه‌های Google، از جمله ایجاد بودجه، تغییر سهمیه‌ها، و تنظیم هشدارها، به مدیریت هزینه‌ها مراجعه کنید.