איך יוצרים מזהי מפה

בחירת פלטפורמה: Android iOS JavaScript Web Service

מזהה מפה הוא מזהה ייחודי שמייצג את הסגנון של מפות Google והגדרות תצורה שמאוחסנות ב-Google Cloud. אתם משתמשים במזהי מפות כדי להפעיל תכונות או לנהל מפות באתרים ובאפליקציות שלכם, או כדי להגדיר את הסגנון שלהן. אפשר ליצור מזהי מפה לכל פלטפורמה שנדרשת – JavaScript,‏ Android,‏ iOS או מפות סטטיות – בפרויקט שלכם ב-Google Cloud Console בדף ניהול מפות.

מידע נוסף על מזהי מפות ותכונות שמשתמשות בהם זמין במאמר סקירה כללית על מזהי מפות.

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

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

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

כדי ליצור מזהי מפות ב-Cloud Console:

  1. נכנסים לפרויקט במסוף Cloud ופותחים אותו עם ההרשאות הנדרשות.

  2. נכנסים לדף ניהול המפות במסוף Cloud.

  3. לוחצים על יצירת מזהה מפה.

    יצירת מזהה מפה חדש

  4. בדף Create new map ID, מבצעים את הפעולות הבאות:

    1. בשדה Name, נותנים שם למזהה המפה.
    2. אופציונלי: בשדה תיאור, מתארים את השימוש במזהה המפה.
    3. בקטע סוג המפה, בוחרים את הפלטפורמה שבה מתכננים להשתמש במזהה המפה. אם בוחרים באפשרות JavaScript, צריך גם לבחור סוג מפה Raster (ברירת המחדל) או Vector. מידע נוסף על מפות וקטוריות זמין במאמר בנושא מפות וקטוריות.
    4. לוחצים על שמירה כדי להציג את מזהה המפה החדש.

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

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

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

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:map="http://schemas.android.com/apk/res-auto"
    ....
    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, מבצעים build ומפעילים את האפליקציה כרגיל. סגנונות מותאמים אישית שהוגדרו בשלב הראשון חלים על כל המפות עם מזהה המפה שצוין.

iOS

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

  1. יוצרים GMSMapID עם מחרוזת מזהה המפה מ-Cloud Console.
  2. יוצרים 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 כך שיוצג סגנון חדש בכל שלב, והסגנון הזה ישתקף בתצוגת המפה שלכם ושל המשתמשים באופן אוטומטי תוך שש שעות בערך.

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

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'
});

מפות סטטיות

כדי להוסיף מזהה מפה למפה חדשה או קיימת שמשתמשת באחד מממשקי ה-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=MAP_ID&signature=YOUR_SIGNATURE" />

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

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