شناسه نقشه شناسه یکتایی است که تنظیمات پیکربندی و سبک Google Map را که در Google Cloud ذخیره شده است نشان میدهد. از شناسههای نقشه برای فعال کردن ویژگیها یا مدیریت یا سبکبندی نقشهها در وبسایتها و برنامههایتان استفاده میکنید. میتوانید برای هر پلاتفرمی که نیاز دارید (جاوا اسکریپت، Android، iOS، یا نقشههای ایستا) در پروژه کنسول Google Cloud خود در صفحه مدیریت نقشه شناسه نقشه ایجاد کنید.
برای جزئیات بیشتر و ویژگیهایی که از شناسه نقشه استفاده میکنند، نمای کلی شناسه نقشه را ببینید.
مجوزهای لازم
برای ایجاد یا مدیریت شناسههای نقشه در پروژهتان، باید از اصلی با اجازههای سطح نقش مناسب، «ویرایشگر» یا «مالک»، در صفحه 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" />