שימוש במזהי מפה

מזהה מפה הוא מזהה שמשויך לסגנון מפה או לתכונה ספציפית. הגדרת סגנון מפה ושיוכו למזהה מפה במסוף Google Cloud. לאחר מכן, כשאתם מפנים למזהה מפה בקוד, סגנון המפה המשויך אליו מוצג באפליקציה. כל עדכון סגנון שתבצעו יופיע באפליקציה באופן אוטומטי, בלי שהלקוחות יצטרכו לבצע עדכונים.

במהלך היצירה, מזהי המפות משויכים לפרויקט, והם מוגבלים גם לפלטפורמה אחת (Android, ‏ iOS, ‏ JavaScript) או ל-Maps Static API.

כדי ליצור מזהי מפה או לנהל אותם במסוף Cloud, צריך את התפקיד Project Owner או Project Editor ב-IAM.

ההרשאות הנדרשות

כדי ליצור או לנהל מזהי מפות או סגנונות מפה בפרויקט מסוים ב-Google Cloud, צריך להיות לכם תפקיד IAM של בעלים או עורך בפרויקט.

יצירת מזהה מפה

מזהה מפה הוא מזהה ייחודי שמייצג מופע יחיד של מפה ב-Google. אפשר ליצור מזהי מפה ולעדכן סגנון שמשויך למזהה מפה בכל שלב במסוף Cloud.

כדי ליצור מזהה מפה:

  1. נכנסים לדף Maps Management במסוף Cloud.
  2. בוחרים באפשרות Create New Map ID כדי להציג את הטופס Create New Map ID.
    יצירת מזהה מפה חדש

    בטופס, מבצעים את הפעולות הבאות:

    • נותנים שם למפה.
    • מציינים את סוג המפה או הפלטפורמה.
    • במפות JavaScript, בוחרים את סוג המפה: רסטר או וקטורי.
    • מזינים תיאור של המפה.
    • בוחרים באפשרות הבא כדי להציג את מזהה המפה החדש.

שיוך מזהה מפה לסגנון מפה

ההנחה בהוראות האלה היא שיש לפחות סגנון מפה אחד קיים בפרויקט.

  1. נכנסים לדף Maps Management במסוף Cloud.
  2. בדף הזה, בוחרים מזהה מפה קיים בעמודה שם המפה.
  3. בחלק התחתון של הטופס, בוחרים סגנון מפה מהתפריט הנפתח Map styles associated with this Map ID (סגנונות המפה המשויכים למזהה המפה הזה).
  4. לוחצים על שמירה.
    צילום מסך שבו מוצג דף הפרטים של מזהה מפה יחיד, כולל השדה הנפתח שמאפשר למשתמשים לשייך סגנון מפה למזהה המפה הזה.

הוספת מזהה המפה לאפליקציה

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

כדי ליצור מופע של מפה באמצעות מזהה מפה, מבצעים את הפעולות הבאות:

  1. יוצרים GMSMapID עם מחרוזת מזהה המפה מ-Cloud Console.
  2. יוצרים 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

כדי ליצור מפה עם מזהה מפה בקוד האפליקציה:

  1. אם אתם משתמשים כרגע בהתאמה אישית של המפה באמצעות קוד JSON מוטמע, צריך להסיר את הנכס styles מהאובייקט MapOptions. אחרת, אפשר לדלג על השלב הזה.

  2. מוסיפים למפה מזהה מפה באמצעות הנכס 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" />

מפה שממוקדת בגשר ברוקלין בעיר ניו יורק, ניו יורק, ארה&quot;ב, עם פקדי מפה בפינה השמאלית התחתונה. במפה מוצג סגנון מותאם אישית של הכבישים, המים והאדמה.

אם יש לכם חתימה דיגיטלית בכתובת ה-URL הסטטית של מפות Google לפני הוספת מזהה המפה, תצטרכו ליצור חתימה דיגיטלית חדשה ולהוסיף אותה אחרי הוספת מזהה המפה. כשיוצרים את הסוד החדש לחתימה על כתובות URL, חשוב להסיר את החתימה הדיגיטלית הקודמת מכתובת ה-URL.

תכונות שזמינות כשמשתמשים במזהי מפה

עיצוב מפות מבוסס-ענן: עיצוב, התאמה אישית וניהול של המפות באמצעות מסוף Google Cloud.
זמין בכל הפלטפורמות (Android, ‏JavaScript, ‏iOS ו-Maps Static API)

מפות וקטורים: מפה המורכבת מכותרות מבוססות-וקטור, שמצוירות בזמן הטעינה בצד הלקוח באמצעות WebGL.
זמין ב-JavaScript