نحوه ایجاد شناسه‌های نقشه

پلاتفرم را انتخاب کنید: Android Android 3D iOS iOS 3D JavaScript Web Service

شناسه نقشه شناسه یکتایی است که تنظیمات پیکربندی و سبک Google Map را که در Google Cloud ذخیره شده است نشان می‌دهد. از شناسه‌های نقشه برای فعال کردن ویژگی‌ها یا مدیریت یا سبک‌بندی نقشه‌ها در وب‌سایت‌ها و برنامه‌هایتان استفاده می‌کنید. می‌توانید برای هر پلاتفرمی که نیاز دارید (جاوا اسکریپت، Android،‏ iOS، یا نقشه‌های ایستا) در پروژه کنسول Google Cloud خود در صفحه مدیریت نقشه شناسه نقشه ایجاد کنید.

برای جزئیات بیشتر و ویژگی‌هایی که از شناسه‌های نقشه استفاده می‌کنند، نمای کلی شناسه نقشه را ببینید.

مجوزهای لازم

برای ایجاد یا مدیریت شناسه‌های نقشه در پروژه‌تان، باید از اصلی با اجازه‌های سطح نقش مناسب، «ویرایشگر» یا «مالک»، در صفحه IAM کنسول Cloud برای پروژه استفاده کنید. برای جزئیات، مرجع نقش‌های ازپیش تعریف‌شده و پایه IAM را ببینید.

ایجاد شناسه‌های نقشه

شناسه‌های نقشه را در «کنسول Cloud» با دنبال کردن این مراحل ایجاد کنید:

  1. به سیستم پروژه کنسول Cloud با اجازه‌های لازم وارد شوید و آن را باز کنید.

  2. در کنسول Cloud، به صفحه «مدیریت Maps» بروید.

  3. روی ایجاد شناسه نقشه کلیک کنید.

    ایجاد شناسه نقشه جدید

  4. در صفحه ایجاد شناسه نقشه جدید، کارهای زیر را انجام دهید:

    1. برای نام، به شناسه نقشه نامی بدهید.
    2. اختیاری: برای شرح، توضیح دهید که شناسه نقشه برای چه استفاده می‌شود.
    3. برای نوع نقشه، پلاتفرمی را که می‌خواهید در آن از شناسه نقشه استفاده کنید انتخاب کنید. اگر JavaScript را انتخاب می‌کنید، نوع نقشه شطرنجی (پیش‌فرض) یا برداری را نیز انتخاب کنید. برای اطلاعات بیشتر درباره نقشه‌های بُرداری، نقشه‌های بُرداری را ببینید.
    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" />

برای مشخص کردن شناسه نقشه به‌صورت برنامه‌نویسی، آن را بااستفاده از کلاس GoogleMapOptions به نمونه MapFragment ارسال کنید:

جاوا

 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، برنامه‌تان را طبق روشی که معمولاً انجام می‌دهید بسازید و اجرا کنید. سبک‌های سفارشی پیکربندی‌شده در مرحله اول به همه نقشه‌ها با شناسه نقشه مشخص‌شده اعمال می‌شود.

Android 3D

دارایی «رشته» mapId را روی Map3DOptions تنظیم کنید یا به‌صورت برنامه‌نویسی یا بااستفاده از مشخصه‌های چیدمان. Map3DOptions درطول نمونه‌سازی به شیء Map3DView ارائه می‌شود و پس‌از ساخته شدن Map3DView قابل‌تغییر نیست.

افزودن شناسه نقشه، ایجاد نقشه به‌صورت برنامه‌نویسی:

import com.google.android.gms.maps3d.GoogleMap3D
import com.google.android.gms.maps3d.Map3DOptions
import com.google.android.gms.maps3d.Map3DView
import com.google.android.gms.maps3d.OnMap3DViewReadyCallback
import com.google.android.gms.maps3d.model.Map3DMode

class MainActivity : Activity(), OnMap3DViewReadyCallback {
  fun onCreate(...) {
    val map3DOptions = Map3DOptions(mapMode = Map3DMode.HYBRID, mapId = "MAP_ID")
    val map3DView = Map3DView(context, map3DOptions)
    map3DView.getMap3dViewAsync(this)
  }
}

بااستفاده از مشخصه‌های چیدمان، شناسه نقشه اضافه کنید:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:map3d="http://schemas.android.com/apk/res-auto"
   android:layout_width="match_parent" android:layout_height="match_parent">
 <com.google.android.gms.maps3d.Map3DView
     android:id="@+id/map3dView"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     map3d:mode="hybrid"
     map3d:mapId="MAP_ID"/>
</LinearLayout>

iOS

برای نمونه‌سازی نقشه بااستفاده از شناسه نقشه، کارهای زیر را انجام دهید:

  1. GMSMapID را با رشته شناسه نقشه از کنسول Cloud ایجاد کنید.
  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

آبجکتیو-سی

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 تنظیم کنید تا هر زمان خواستید سبک جدیدی داشته باشد، و آن سبک به‌طور خودکار ظرف حدود شش ساعت در نمای نقشه شما و کاربران منعکس خواهد شد.

اگر می‌خواهید تغییرات را فوراً ببینید، می‌توانید با خارج شدن از برنامه، توقف اجباری برنامه از فهرست برنامه‌های اخیراً استفاده‌شده، و سپس باز کردن مجدد آن، برنامه را ببندید و بازراه‌اندازی کنید. سپس نقشه به‌روزشده نمایان خواهد شد.

iOS 3D

توسعه‌دهندگان iOS می‌توانند اصلاح‌گر style جدیدی را در Map تنظیم کنند. این اصلاح‌کننده یک شناسه نقشه و به‌طور اختیاری یک بسته شدن را می‌پذیرد تا زمانی که شناسه نقشه نامعتبر است یا پیدا نمی‌شود، فراخوانی شود.

import SwiftUI
import GoogleMaps3D

struct ContentView: View {
  init () {
    Map.apiKey = "YOUR_API_KEY"
  }
  var body: some View {
    Map(initialCamera: .init(
        latitude: 0.0,
        longitude: 0.0,
      ),
      mode: .hybrid
    )
    .style(
      with: "MAP_ID",
      error: {
        // Handle styling error.
      }
    )
    // Could also use trailing closure syntax
    //  .style(with: "MAP_ID") {
    //     // Handle styling error.
    //  }
  }
}

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

جاوا اسکریپت سه‌بعدی

برای ایجاد نقشه با شناسه نقشه در برنامه‌تان، بااستفاده از ویژگی mapId، شناسه نقشه را به نقشه اضافه کنید. برای مثال:

async function init() {
    const { Map3DElement } = await google.maps.importLibrary('maps3d');

    const map = new Map3DElement({
        center: {
            lat: 37.75183154601466,
            lng: -119.52369070507672,
            altitude: 2200,
        },
        tilt: 67.5,
        heading: 108.94057782079429,
        range: 6605.57279990986,
        mapId: 'bcce776b92de1336e22c569f', // Styles are associated with map IDs.
        mode: 'HYBRID',
    });

    document.body.append(map);
}

void init();

Maps Static

برای افزودن شناسه نقشه به نقشه جدید یا موجودی که از یکی از میاناهای برنامه‌سازی کاربردی سرویس وب ما استفاده می‌کند، پارامتر نشانی وب 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" />

نقشه‌ای با تمرکز بر پل بروکلین در شهر نیویورک، ایالت نیویورک، ایالات متحده با کنترل‌های نقشه در گوشه پایین سمت چپ. نقشه سبک سفارشی را در جاده‌ها، آب، و زمین نمایش می‌دهد.

اگر قبل‌از افزودن شناسه نقشه، امضای دیجیتالی در نشانی وب «نقشه ایستا» دارید، پس‌از افزودن شناسه نقشه باید امضای دیجیتالی جدیدی ایجاد کنید و آن را اضافه کنید. هنگام تولید رمز امضای نشانی وب جدید، به‌یاد داشته باشید که امضای دیجیتال قبلی خود را از نشانی وب بردارید.