پروژه ۱: «Store Locator» وب با جستجوی مکانها + Autocomplete
کاربرد: نمایش همه شعب/نمایندگیها روی نقشه، جستجوی سریع آدرس/محل نزدیک.
APIها: Maps JavaScript API + Places (Autocomplete/Details). Google for Developers
اسکلت ساده (HTML + JS)
نکتهٔ مهم: Session Token در Autocomplete برای گروهبندی جستجوها در یک سشن و صورتحساب صحیح است. اگر از ویجت آماده استفاده کنی، مدیریت سشن اتوماتیک است؛ اگر از سرویس خام استفاده کنی باید
AutocompleteSessionTokenبسازی (مثل بالا). Google for Developers+2Google for Developers+2اگر از استایل ابری استفاده میکنی،
mapIdرا مطابق Map ID خودت بگذار. Google for Developers+1کلید را محدود کن (HTTP referrers + API restriction برای Places/Maps JS).
پروژه ۲: «مسیر چندتوقفه با بهینهسازی ترتیب توقفها»
کاربرد: پیک/لجستیک سبک، فروش بازاریابها، مسیریابی سریع با درنظرگرفتن ترتیب بهینه توقفها.
API: Routes API (computeRoutes با optimizeWaypointOrder). Google for Developers+1
درخواست نمونه (cURL – REST)
curl -X POST "https://routes.googleapis.com/directions/v2:computeRoutes" \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: $API_KEY" \
-H "X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex,routes.distanceMeters,routes.duration" \
-d '{
"origin": {"address": "Tehran"},
"destination": {"address": "Tehran"},
"travelMode": "DRIVE",
"optimizeWaypointOrder": true,
"intermediates": [
{"address": "Karaj"},
{"address": "Qom"},
{"address": "Varamin"},
{"address": "Ekbatan, Tehran"}
]
}'
پاسخ شامل
routes.optimizedIntermediateWaypointIndexاست که ترتیب بهینهٔ توقفهای میانی را میدهد. Google for Developersبرای ماتریس زمان/مسافت چندمبدأ-چندمقصد نیز میتوانی از
computeRouteMatrixاستفاده کنی. (در همین مجموعه Routes API) Google for Developersباز هم کلید را برای IP سرور محدود کن اگر درخواست از بکاند زده میشود. Google for Developers
پروژه ۳: «اعتبارسنجی آدرس در فرانت/بکِ سفارشگیری»
کاربرد: چکاوت فروشگاه آنلاین، جلوگیری از برگشت بسته/خطای ارسال.
API: Address Validation API. Google for Developers+1
نمونهٔ ساده (cURL – REST)
curl -X POST "https://addressvalidation.googleapis.com/v1:validateAddress?key=$API_KEY" \
-H "Content-Type: application/json" \
-d '{
"address": { "regionCode": "IR", "locality": "Tehran", "addressLines": ["Valiasr St, No. 123"] }
}'
خروجی شامل کیفیت/استانداردسازی اجزای آدرس و بهترین ژئوکد است؛ میتوانی پیشنهاد اصلاح به کاربر بدهی. Google for Developers
نمونهٔ بکاند پایتون (کلاینت رسمی)
from google.maps import addressvalidation_v1 as av
client = av.AddressValidationClient()
req = av.ValidateAddressRequest(
address=av.PostalAddress(region_code="IR", locality="Tehran", address_lines=["Valiasr St, No. 123"])
)
resp = client.validate_address(request=req)
print(resp.result.verdict, resp.result.address.formatted_address)
کتابخانهٔ پایتون رسمی برای Address Validation موجود است. Google Cloud
(اختیاری) استایل ابری و Map ID
اگر UI برندسازیشده میخواهی، در کنسول یک Cloud-based map style بساز، Map ID بگیر و در کلاینتت ست کن (هم وب JS و هم Static/Android/iOS پشتیبانی میشود). میتوانی بدون تغییر کد، استایل را از کنسول آپدیت کنی. برای الهام گرفتن سریع، Styling Wizard را ببین.









