שימוש במזהי מפות
מזהה מפה הוא מזהה שמשויך לתכונה או לסגנון מפה ספציפי. צריך להגדיר סגנון מפה ולשייך אותו למזהה מפה במסוף Google Cloud. לאחר מכן, כשתציינו מזהה מפה בקוד, סגנון המפה המשויך אליו מוצג באפליקציה. כל עדכוני הסגנון הבאים שתבצעו יופיעו באפליקציה באופן אוטומטי, בלי שהלקוחות יצטרכו לעדכן אותם.
ברגע שיוצרים את מזהי המפות, הם משויכים לפרויקט והם מוגבלים לפלטפורמה אחת (Android, iOS, JavaScript) או ל- Maps Static API.
כדי ליצור או לנהל מזהי מפות במסוף Cloud, צריך להיות לכם תפקיד IAM של בעלי הפרויקט או של עורך פרויקט.
ההרשאות הנדרשות
כדי ליצור או לנהל מזהי מפה או סגנונות של מפות בפרויקט מסוים ב-Google Cloud, צריך להיות לכם תפקיד IAM של בעלים או עריכה בפרויקט.
יצירת מזהה מפה
מזהה מפה הוא מזהה ייחודי שמייצג מופע יחיד של מפה מ-Google. אפשר ליצור מזהי מפה ולעדכן את הסגנון שמשויך למזהה המפה בכל שלב במסוף Cloud.
כדי ליצור מזהה מפה:
- נכנסים לדף של Maps Management ב-Cloud Console.
- בוחרים באפשרות יצירת מזהה מפה חדש כדי להציג את הטופס יצירת מזהה מפה חדש.
בטופס, יש לבצע את הפעולות הבאות:
- צריך לציין שם למפה.
- צריך לציין את סוג המפה או את הפלטפורמה.
- למפות JavaScript, בוחרים סוג מפה וקטורי או רסטר.
- מזינים תיאור של המפה.
- בוחרים באפשרות הבא כדי להציג את מזהה המפה החדש.
שיוך מזהה מפה לסגנון מפה
ההנחיות האלה מבוססות על ההנחה שיש בפרויקט שלך לפחות סגנון מפה אחד.
- נכנסים לדף של Maps Management ב-Cloud Console.
- בדף הזה בוחרים מזהה מפה קיים מהעמודה שם המפה.
- בחלק התחתון של הטופס, בוחרים סגנון מפה מהתפריט הנפתח סגנונות מפה המשויכים למזהה המפה הזה.
- לוחצים על שמירה.
הוספה של מזהה המפה לאפליקציה
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. - יוצרים
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' });
סטטי במפות Google
כדי להוסיף מזהה מפה למפה חדשה או קיימת שמשתמשת באחד מממשקי ה-API של שירות האינטרנט, צריך להוסיף את הפרמטר 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 ו-API סטטי של מפות Google)
מפות וקטוריות: מפה שמורכבת ממשבצות המבוססות על וקטורים, שמשורטטות בזמן הטעינה בצד הלקוח באמצעות WebGL.
זמין ב-JavaScript