Harita kimliği, Google Cloud'da depolanan Google Harita stilini ve yapılandırma ayarlarını temsil eden benzersiz bir tanımlayıcıdır. Web sitelerinizde ve uygulamalarınızda özellikleri etkinleştirmek, haritaları yönetmek veya stil özellikli haritalara stil vermek için harita kimliklerini kullanırsınız. Google Cloud Console projenizdeki Harita Yönetimi sayfasında, ihtiyacınız olan her platform (JavaScript, Android, iOS veya statik haritalar) için harita kimlikleri oluşturabilirsiniz.
Harita kimliklerinin kullanıldığı daha fazla ayrıntı ve özellik için Harita kimliğine genel bakış başlıklı makaleyi inceleyin.
Gerekli izinler
Projenizde harita kimlikleri oluşturmak veya yönetmek için projenin Cloud Console IAM sayfasında uygun rol düzeyinde izinlere (Düzenleyici veya Sahip) sahip bir alt öğe kullanmanız gerekir. Ayrıntılar için IAM temel ve önceden tanımlanmış rolleri referansı başlıklı makaleyi inceleyin.
Harita kimlikleri oluşturma
Cloud Console'da aşağıdaki adımları uygulayarak harita kimlikleri oluşturun:
Gerekli izinlere sahip bir Cloud Console projesinde oturum açın ve projeyi açın.
Cloud Console'da Haritalar Yönetimi sayfasına gidin.
Harita kimliği oluştur'u tıklayın.
Yeni harita kimliği oluştur sayfasında aşağıdakileri yapın:
- Ad alanında harita kimliğine bir ad verin.
- İsteğe bağlı: Açıklama bölümünde harita kimliğinin ne için kullanıldığını açıklayın.
- Harita türü için harita kimliğini kullanmayı planladığınız platformu seçin. JavaScript'i seçerseniz Kafes (varsayılan) veya Vektör harita türünü de seçin. Vektör haritalar hakkında daha fazla bilgi için Vektör Haritalar başlıklı makaleyi inceleyin.
- Yeni harita kimliğinizi göstermek için Kaydet'i tıklayın.
Harita kimliğini harita stiliyle ilişkilendirme
Bulut tabanlı harita stilleri kullanıyorsanız harita stilini harita kimliğinizle ilişkilendirirsiniz. Ayrıntılar için Stilinizi bir harita kimliğiyle ilişkilendirme başlıklı makaleye bakın.
Harita kimliğini uygulamanıza ekleme
Android
Harita kimliğinizi, <fragment> öğesi aracılığıyla etkinliğin düzen dosyasına, MapView sınıfını kullanarak veya GoogleMapOptions sınıfını kullanarak programatik olarak ekleyin.
Örneğin, res/values/strings.xml içinde map_id adlı dize değeri olarak depolanan bir harita kimliği oluşturduğunuzu varsayalım:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="map_id">MAP_ID</string>
</resources>
Etkinliğin düzen dosyasındaki bir <fragment> öğesi aracılığıyla eklenen haritalar için özel stile sahip olması gereken tüm harita parçaları, map:mapId özelliğinde harita kimliğini belirtmelidir:
<fragment xmlns:map="http://schemas.android.com/apk/res-auto"
map:name="com.google.android.gms.maps.SupportMapFragment"
…
map:mapId="@string/map_id" />
Harita kimliği belirtmek için MapView sınıfının map:mapId özelliğini de kullanabilirsiniz:
<com.google.android.gms.maps.MapView
xmlns:map="http://schemas.android.com/apk/res-auto"
....
map:mapId="@string/map_id" />
Bir harita kimliğini programatik olarak belirtmek için GoogleMapOptions sınıfını kullanarak bir MapFragment örneğine iletin:
Java
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'da uygulamanızı her zamanki gibi oluşturun ve çalıştırın. İlk adımda yapılandırılan özel stiller, belirtilen harita kimliğine sahip tüm haritalara uygulanır.
Android 3D
mapId dize özelliğini programatik olarak veya düzen özelliklerini kullanarak Map3DOptions üzerinde ayarlayın. Map3DOptions, örnek oluşturma sırasında Map3DView nesnesine sağlanır ve Map3DView oluşturulduktan sonra değiştirilemez.
Haritayı programatik olarak oluşturarak harita kimliği ekleme:
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)
}
}
Düzen özelliklerini kullanarak harita kimliği ekleme:
<?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
Harita kimliği kullanarak harita örneklendirmek için aşağıdakileri yapın:
- Cloud Console'daki harita kimliği dizesini kullanarak bir
GMSMapIDoluşturun. - Yeni oluşturduğunuz harita kimliğini belirten bir
GMSMapViewoluşturun.
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
Objective-C
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;
Kendi harita kimliğinizi kullanıyorsanız Cloud Console'da harita kimliğinizi istediğiniz zaman yeni bir stil kullanacak şekilde ayarlayabilirsiniz. Bu stil, yaklaşık altı saat içinde sizin ve kullanıcılarınız için harita görünümünüze otomatik olarak yansıtılır.
Değişiklikleri hemen görmek istiyorsanız uygulamadan çıkıp son kullanılan uygulamalar listesinden uygulamayı zorla kapatarak ve ardından yeniden açarak uygulamanızı kapatıp yeniden başlatabilirsiniz. Ardından güncellenen harita görünür.
iOS 3D
iOS geliştiricileri, Map için yeni bir style değiştirici ayarlayabilir. Bu değiştirici, bir harita kimliği ve isteğe bağlı olarak harita kimliği geçersiz olduğunda veya bulunamadığında çağrılacak bir kapanış kabul eder.
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
Uygulama kodunuzda harita kimliği içeren bir harita oluşturmak için:
Haritanızı yerleşik JSON koduyla özelleştiriyorsanız
MapOptionsnesnenizdenstylesözelliğini kaldırın. Aksi takdirde bu adımı atlayın.mapIdözelliğini kullanarak haritaya bir harita kimliği ekleyin. Örneğin:
map = new google.maps.Map(document.getElementById('map'), { center: {lat: -34.397, lng: 150.644}, zoom: 8, mapId: 'MAP_ID' });
JavaScript 3D
Uygulamanızda harita kimliği içeren bir harita oluşturmak için mapId özelliğini kullanarak haritaya bir harita kimliği ekleyin. Örneğin:
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
Web hizmeti API'lerimizden birini kullanan yeni veya mevcut bir haritaya harita kimliği eklemek için map_id URL parametresini ekleyin ve harita kimliğinize ayarlayın. Bu örnekte, Maps Static API kullanılarak bir haritaya harita kimliği ekleme işlemi gösterilmektedir.
<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" />