שימוש במזהי מפה
מזהה מפה הוא מזהה שמשויך לסגנון או לתכונה מסוימים במפה. אפשר להגדיר סגנון מפה ולשייך אותו למזהה מפה במסוף Google Cloud. לאחר מכן, כשמוסיפים מזהה מפה לקוד, סגנון המפה המשויך שלו מוצג באפליקציה. עדכוני סגנון שתבצעו בעתיד יופיעו באפליקציה באופן אוטומטי, ללא צורך בעדכונים של הלקוחות.
בתהליך היצירה של מזהי המפה משויכים לפרויקט, והם מוגבלים לפלטפורמה יחידה (Android, iOS, JavaScript) או ל-Maps Static API.
כדי ליצור או לנהל מזהי מפות ב-Cloud Console, צריך להיות לכם תפקיד IAM של בעלי הפרויקט או עריכת פרויקט.
ההרשאות הנדרשות
כדי ליצור או לנהל מזהי מפות או סגנונות במפה בפרויקט Google Cloud נתון, צריך להיות לכם תפקיד 'בעלים' או 'אדמין ב-IAM' בפרויקט.
יצירת מזהה מפה
מזהה מפה הוא מזהה ייחודי שמייצג מופע יחיד של מפת Google. תוכלו ליצור מזהי מפה ולעדכן סגנון שמשויך למזהה המפה, מתי שתרצו ב-Cloud Console.
כדי ליצור מזהה מפה:
- נכנסים לדף של ניהול מפות Google במסוף Cloud.
- בוחרים באפשרות יצירת מזהה מפה חדש כדי להציג את הטופס יצירת מזהה מפה חדש.
בטופס, מבצעים את הפעולות הבאות:
- יש לציין שם מפה.
- מציינים את סוג המפה או הפלטפורמה.
- למפות JavaScript, בוחרים בסוג המפה raster או וקטור.
- מזינים תיאור של המפה.
- בוחרים באפשרות הבא כדי להציג את מזהה המפה החדש.
שיוך מזהה של מפה לסגנון מפה
אנחנו יוצאים מנקודת הנחה שיש לפחות סגנון מפה אחד בפרויקט שלכם.
- נכנסים לדף של ניהול מפות Google במסוף Cloud.
- בדף הזה, בוחרים מזהה מפה קיים מהעמודה שם המפה.
- בחלק התחתון של הטופס, בוחרים בסגנון מפה מתוך התפריט הנפתח סגנונות המפה שמשויכים למזהה המפה הזה.
- לוחצים על שמירה.
הוספה של מזהה המפה לאפליקציה
Android
מוסיפים את מזהה המפה באמצעות רכיב <fragment>
בקובץ הפריסה של הפעילות, באמצעות המחלקה MapView
או באופן פרוגרמטי באמצעות המחלקה GoogleMapOptions
.
לדוגמה, נניח שיצרתם מזהה מפה שנשמר כערך מחרוזת בשם map_id
ב-res/values/strings.xml
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="map_id">YOUR_MAP_ID</string>
</resources>
במפות שהוספתם דרך רכיב <fragment>
בקובץ הפריסה של הפעילות, בכל מקטעי המפה שאמורים להיות בסגנון המותאם אישית חייבים לציין את מזהה המפה במאפיין map:mapId
:
<fragment xmlns:map="http://schemas.android.com/apk/res-auto"
class="com.google.android.gms.maps.SupportMapFragment"
…
map:mapId="@string/map_id" />
אפשר גם להשתמש במאפיין map:mapId
של המחלקה MapView
כדי לציין מזהה מפה:
<com.google.android.gms.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
....
map:mapId="@string/map_id" />
כדי לציין מזהה מפה באופן פרוגרמטי, צריך להעביר אותו למכונה של MapFragment
באמצעות המחלקה GoogleMapOptions
:
Java
MapFragment mapFragment = MapFragment.newInstance(
new GoogleMapOptions()
.mapId(getResources().getString(R.string.map_id)));
Kotlin
val mapFragment = MapFragment.newInstance(
GoogleMapOptions()
.mapId(resources.getString(R.string.map_id))
)
ב-Android Studio, יוצרים ומפעילים את האפליקציה כרגיל. סגנונות מותאמים אישית, כפי שמוגדרים בשלב הראשון, יחולו על כל המפות עם מזהה.
iOS
כדי ליצור מפה מיידית באמצעות מזהה מפה, מבצעים את הפעולות הבאות:
- יוצרים
GMSMapID
עם המחרוזת של מזהה המפה מ-Cloud Console. - יוצרים מזהה מסוג
GMSMapView
שמציין את מזהה המפה שיצרתם.
Swift
let camera = GMSCameraPosition(latitude: 47.0169, longitude: -122.336471, zoom: 12)
let mapID = GMSMapID(identifier: "<YOUR MAP ID>")
let mapView = GMSMapView(frame: .zero, mapID: mapID, camera: camera)
self.view = mapView
Objective-C
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.0169
longitude:-122.336471
zoom:12];
GMSMapID *mapID = [GMSMapID mapIDWithIdentifier:@"<YOUR MAP ID>"];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:camera];
self.view = mapView;
אם אתם משתמשים במזהה מפה משלכם, תוכלו לשנות את הסגנון של מזהה המפה ב-Cloud Console מתי שתרצו. הסגנון הזה יבוא לידי ביטוי בתצוגת המפה עבורכם ועבור המשתמשים תוך כ-6 שעות.
אם רוצים לראות את השינויים באופן מיידי, אפשר לסגור את האפליקציה ולפתוח אותה מחדש, לאלץ יציאה מהאפליקציה מרשימת האפליקציות שהיו בשימוש לאחרונה ולפתוח אותה מחדש. לאחר מכן ניתן יהיה לראות את המפה המעודכנת.
JavaScript
כדי ליצור מפה עם מזהה מפה בקוד האפליקציה שלך:
אם אתם מתאימים אישית כרגע את המפה באמצעות קוד JSON מוטמע, עליכם להסיר את המאפיין
styles
מאובייקטMapOptions
. אחרת, דלגו על השלב הזה.ניתן להוסיף מזהה מפה למפה באמצעות המאפיין
mapId
. למשל:
map = new google.maps.Map(document.getElementById('map'), { center: {lat: -34.397, lng: 150.644}, zoom: 8, mapId: 'MAP_ID' });
מפות סטטיות
כדי להוסיף מזהה מפה למפה חדשה או קיימת שמשתמשת באחד מממשקי ה-API של שירות האינטרנט שלנו, מוסיפים את הפרמטר של כתובת ה-URL של map_id
ומגדירים אותו למזהה המפה.
בדוגמה זו אפשר להוסיף מזהה מפה למפה באמצעות Maps Static API.
<img src="https://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600x300&maptype=roadmap&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318&markers=color:red%7Clabel:C%7C40.718217,-73.998284&key=YOUR_API_KEY&map_id=YOUR_MAP_ID&signature=YOUR_SIGNATURE" />
התכונות שזמינות כשמשתמשים במזהי המפה
עיצוב מפות מבוסס-ענן: עיצוב, התאמה אישית וניהול של המפות באמצעות מסוף Google Cloud.
זמין בכל הפלטפורמות (Android, JavaScript, iOS ו-Maps Static API)
מפות וקטוריות: מפה המורכבת ממשבצות מבוססות וקטורים, ששרטטות בזמן הטעינה בצד הלקוח באמצעות WebGL.
זמין ב-JavaScript