מזהה מפה הוא מזהה ייחודי שמשמש לייצוג מופע יחיד של מפה של Google. אתם משתמשים במזהי מפה כדי להפעיל תכונות, לנהל מפות או לקבוע את הסגנון שלהן באתרים ובאפליקציות שלכם. אפשר ליצור מזהי מפה לכל פלטפורמה שדרושה לכם – JavaScript, Android, iOS או מפות סטטיות – בפרויקט במסוף Google Cloud, בדף ניהול מפות.
ההרשאות הנדרשות
כדי ליצור או לנהל מזהי מפות בפרויקט, צריך להשתמש בחשבון משתמש עם ההרשאות המתאימות ברמת התפקיד, 'עריכה' או 'בעלים', בדף IAM של הפרויקט במסוף Cloud. למידע נוסף, ראו מסמך עזר בנושא תפקידים בסיסיים ומוגדרים מראש ב-IAM.
יצירת מזהי מפה
יוצרים מזהי מפה במסוף Cloud באופן הבא:
נכנסים לפרויקט במסוף Cloud ופותחים אותו עם ההרשאות הנדרשות.
נכנסים לדף Maps Management במסוף Cloud.
לוחצים על Create map ID.
בדף Create new map ID, מבצעים את הפעולות הבאות:
- בשדה Name, נותנים שם למזהה המפה.
- אופציונלי: בקטע תיאור, מתארים למה משמש מזהה המפה.
- בקטע סוג המפה, בוחרים את הפלטפורמה שבה מתכוונים להשתמש במזהה המפה. אם בוחרים ב-JavaScript, צריך לבחור גם סוג מפה: Raster (ברירת המחדל) או Vector. מידע נוסף על מפות וקטוריות זמין במאמר מפות וקטוריות.
- לוחצים על שמירה כדי להציג את מזהה המפה החדש.
שיוך מזהה מפה לסגנון מפה
אם אתם משתמשים בעיצוב מפות מבוסס-ענן, עליכם לשייך סגנון מפה למזהה המפה. פרטים נוספים זמינים במאמר שיוך.
הוספת מזהה המפה לאפליקציה
Android
מוסיפים את מזהה המפה באמצעות רכיב <fragment>
בקובץ הפריסה של הפעילות, באמצעות הכיתה MapView
או באופן פרוגרמטי באמצעות הכיתה GoogleMapOptions
.
לדוגמה, נניח שיצרתם מזהה מפה שמאוחסן כערך מחרוזת בשם map_id
ב-res/values/strings.xml
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="map_id">MAP_ID</string>
</resources>
במפות שנוספו באמצעות אלמנט <fragment>
בקובץ הפריסה של הפעילות, צריך לציין את מזהה המפה במאפיין map:mapId
בכל קטעי המפה שרוצים להחיל עליהם את הסגנון המותאם אישית:
<fragment xmlns:map="http://schemas.android.com/apk/res-auto"
map:name="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. - יוצרים
GMSMapView
ומציינים את מזהה המפה שיצרתם.
Swift
let camera = GMSCameraPosition(latitude: 47.0169, longitude: -122.336471, zoom: 12)
let mapID = GMSMapID(identifier: "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:@"MAP_ID"];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:mapID camera:camera];
self.view = mapView;
אם אתם משתמשים במזהה מפה משלכם, תוכלו להגדיר לו סגנון חדש במסוף Cloud בכל שלב, והסגנון הזה ישתקף בתצוגת המפה שלכם באופן אוטומטי תוך כ-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' });
Maps Static
כדי להוסיף מזהה מפה למפה חדשה או קיימת שמשתמשת באחד מממשקי ה-API של שירותי האינטרנט שלנו, צריך לצרף את הפרמטר map_id
של כתובת ה-URL ולהגדיר אותו למזהה המפה. בדוגמה הזו מוסבר איך מוסיפים מזהה מפה למפה באמצעות 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=MAP_ID&signature=YOUR_SIGNATURE" />