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