שימוש במזהי מפות
מזהה מפה הוא מזהה שמשויך לסגנון מפה או לתכונה מסוימת. הגדרת סגנון מפה ושיוכו למזהה מפה במסוף Google Cloud. לאחר מכן, כשאתם מפנים למזהה מפה בקוד, סגנון המפה המשויך אליו מוצג באפליקציה. כל עדכון סגנון שתבצעו יופיע באפליקציה באופן אוטומטי, בלי שהלקוחות יצטרכו לבצע עדכונים.
במהלך היצירה, מזהי המפות משויכים לפרויקט, והם מוגבלים גם לפלטפורמה אחת (Android, iOS, JavaScript) או ל-Maps Static API.
כדי ליצור או לנהל מזהי מפות במסוף Cloud, צריכה להיות לכם הרשאת IAM של 'בעלי הפרויקט' או 'עורך פרויקט'.
ההרשאות הנדרשות
כדי ליצור או לנהל מזהי מפות או סגנונות מפות בפרויקט נתון ב-Google Cloud, צריך להיות בתפקיד הזה בתפקיד 'בעלים' או 'עריכה' בפרויקט.
יצירת מזהה מפה
מזהה מפה הוא מזהה ייחודי שמייצג מופע יחיד של מפה ב-Google. במסוף Cloud תוכלו ליצור מזהי מפות ולעדכן סגנון שמשויך למזהה המפה בכל שלב.
כדי ליצור מזהה מפה:
- נכנסים לדף Maps Management במסוף Cloud.
- בוחרים באפשרות Create New Map ID כדי להציג את הטופס Create New Map ID.
בטופס, מבצעים את הפעולות הבאות:
- נותנים שם למפה.
- מציינים סוג מפה או פלטפורמה.
- למפות JavaScript, בוחרים בסוג המפה 'רסטר' או 'מפה וקטורית'.
- מזינים תיאור של המפה.
- בוחרים באפשרות הבא כדי להציג את מזהה המפה החדש.
שיוך מזהה מפה לסגנון מפה
ההנחיות האלה מבוססות על ההנחה שיש לפחות סגנון מפה אחד בפרויקט.
- נכנסים לדף Maps Management במסוף 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 בכל שלב, והסגנון הזה ישתקף בתצוגת המפה שלכם באופן אוטומטי תוך כ-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=YOUR_MAP_ID&signature=YOUR_SIGNATURE" />
תכונות שזמינות כשמשתמשים במזהי מפה
עיצוב מפות מבוסס-ענן: עיצוב, התאמה אישית וניהול של המפות באמצעות מסוף Google Cloud.
זמין בכל הפלטפורמות (Android, JavaScript, iOS וה-API הסטטי של מפות Google)
מפות וקטוריות: מפה שמורכבת ממשבצות מבוססות וקטורים, המצוירת בזמן הטעינה בצד הלקוח באמצעות WebGL.
זמין ב-JavaScript