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