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

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

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

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

مجوزهای لازم

برای ایجاد یا مدیریت هر شناسه نقشه در پروژه‌تان، باید از اصلی با اجازه‌های سطح نقش مناسب، «ویرایشگر» یا «مالک»، در صفحه 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" />

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

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