شناسه نقشه شناسه یکتایی است که تنظیمات پیکربندی و سبک Google Map را که در Google Cloud ذخیره شده است نشان میدهد. از شناسههای نقشه برای فعال کردن ویژگیها یا مدیریت یا سبکبندی نقشهها در وبسایتها و برنامههایتان استفاده میکنید. در پروژه کنسول Google Cloud در صفحه مدیریت نقشه میتوانید برای هر پلاتفرمی که نیاز دارید--JavaScript، Android، iOS، یا نقشههای ثابت-- شناسههای نقشه ایجاد کنید.
برای جزئیات بیشتر و ویژگیهایی که از شناسه نقشه استفاده میکنند، نمای کلی شناسه نقشه را ببینید.
مجوزهای لازم
برای ایجاد یا مدیریت هر شناسه نقشه در پروژهتان، باید از اصلی با اجازههای سطح نقش مناسب، «ویرایشگر» یا «مالک»، در صفحه IAM کنسول Cloud برای پروژه استفاده کنید. برای جزئیات، مرجع نقشهای پایه و ازپیشتعریفشده IAM را ببینید.
ایجاد شناسه نقشه
شناسههای نقشه را در «کنسول Cloud» با دنبال کردن این مراحل ایجاد کنید:
با اجازههای لازم به سیستم پروژه «کنسول Cloud» وارد شوید و آن را باز کنید.
در «کنسول Cloud»، به صفحه «مدیریت Maps» بروید.
روی ایجاد شناسه نقشه کلیک کنید.
در صفحه ایجاد شناسه نقشه جدید، کارهای زیر را انجام دهید:
- برای نام، به شناسه نقشه نامی بدهید.
- اختیاری: برای شرح، توضیح دهید که شناسه نقشه برای چه استفاده میشود.
- برای نوع نقشه، پلاتفرمی را که میخواهید در آن از شناسه نقشه استفاده کنید انتخاب کنید. اگر JavaScript را انتخاب میکنید، نوع نقشه شطرنجی (پیشفرض) یا برداری را نیز انتخاب کنید. برای اطلاعات بیشتر درباره نقشههای برداری، به نقشههای برداری مراجعه کنید.
- برای نمایش شناسه نقشه جدید، روی ذخیره کلیک کنید.
مرتبط کردن شناسه نقشه با سبک نقشه
اگر از سبکپردازی نقشه بااستفاده از فضای ابری استفاده میکنید، سبک نقشه را با شناسه نقشه مرتبط میکنید. برای جزئیات، به مرتبط کردن سبک به شناسه نقشه مراجعه کنید.
شناسه نقشه را به برنامهتان اضافه کنید
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
برای نمونهسازی نقشه بااستفاده از شناسه نقشه، کارهای زیر را انجام دهید:
GMSMapIDرا با رشته شناسه نقشه از کنسول Cloud ایجاد کنید.- یک
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
برای ایجاد نقشه با شناسه نقشه در کد برنامه:
اگر ازقبل درحال سفارشیسازی نقشهتان با کد JSON جاسازیشده هستید، ویژگی
stylesرا از شیءMapOptionsبردارید؛ درغیراینصورت، از این مرحله رد شوید.بااستفاده از ویژگی
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" />