Harita stilini ayarlama (Android SDK)
Bu makalede, Azure Haritalar Android SDK'sını kullanarak harita stillerini ayarlamanın iki yolu gösterilmektedir. Azure Haritalar aralarından seçim yapabileceğiniz altı farklı harita stili vardır. Desteklenen eşleme stilleri hakkında daha fazla bilgi için bkz. Azure Haritalar'de desteklenen eşleme stilleri.
Not
Android SDK'sı kullanımdan kaldırılmasını Azure Haritalar
Android için Azure Haritalar Yerel SDK artık kullanım dışıdır ve 31/3/25 tarihinde kullanımdan kaldırılacaktır. Hizmet kesintilerini önlemek için 31.03.25'e kadar Azure Haritalar Web SDK'sına geçin. Daha fazla bilgi için bkz. Android SDK geçiş kılavuzu Azure Haritalar.
Önkoşullar
Hızlı Başlangıç: Android uygulaması oluşturma adımlarını tamamladığınızdan emin olun.
Düzende harita stilini ayarlama
Harita denetimini eklerken etkinlik sınıfınız için düzen dosyasında bir harita stili ayarlayabilirsiniz. Aşağıdaki kod, merkezi konumu, yakınlaştırma düzeyini ve harita stilini ayarlar.
<com.azure.android.maps.control.MapControl
android:id="@+id/mapcontrol"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:azure_maps_centerLat="47.602806"
app:azure_maps_centerLng="-122.329330"
app:azure_maps_zoom="12"
app:azure_maps_style="grayscale_dark"
/>
Aşağıdaki ekran görüntüsünde gri tonlamalı koyu stile sahip bir yol haritası görüntüleyen yukarıdaki kod gösterilmektedir.
Kodda harita stilini ayarlama
Harita stili, eşleme yöntemi kullanılarak setStyle
kodda program aracılığıyla ayarlanabilir. Aşağıdaki kod, haritalar yöntemini ve harita setCamera
stilini kullanarak orta konumu ve yakınlaştırma düzeyini olarak SATELLITE_ROAD_LABELS
ayarlar.
mapControl.onReady(map -> {
//Set the camera of the map.
map.setCamera(center(Point.fromLngLat(-122.33, 47.64)), zoom(14));
//Set the style of the map.
map.setStyle(style(MapStyle.SATELLITE_ROAD_LABELS));
});
mapControl!!.onReady { map: AzureMap ->
//Set the camera of the map.
map.setCamera(center(Point.fromLngLat(-122.33, 47.64)), zoom(14))
//Set the style of the map.
map.setStyle(style(MapStyle.SATELLITE_ROAD_LABELS))
}
Aşağıdaki ekran görüntüsünde uydu yol etiketleri stiline sahip bir haritayı görüntüleyen yukarıdaki kod gösterilmektedir.
Harita kamerasını ayarlama
Harita kamerası, harita görünüm bölmesinde dünyanın hangi bölümünün görüntüleneceğini denetler. Kamera koddaki programlı düzenimizde olabilir. Kodda ayarlarken, haritanın konumunu ayarlamak için iki ana yöntem vardır; ortala ve yakınlaştır veya sınırlayıcı kutuya geçir. Aşağıdaki kodda ve kullanılırken center
tüm isteğe bağlı kamera seçeneklerinin nasıl ayarlanacağı gösterilmektedir zoom
.
//Set the camera of the map using center and zoom.
map.setCamera(
center(Point.fromLngLat(-122.33, 47.64)),
//The zoom level. Typically a value between 0 and 22.
zoom(14),
//The amount of tilt in degrees the map where 0 is looking straight down.
pitch(45),
//Direction the top of the map is pointing in degrees. 0 = North, 90 = East, 180 = South, 270 = West
bearing(90),
//The minimum zoom level the map will zoom-out to when animating from one location to another on the map.
minZoom(10),
//The maximum zoom level the map will zoom-in to when animating from one location to another on the map.
maxZoom(14)
);
//Set the camera of the map using center and zoom.
map.setCamera(
center(Point.fromLngLat(-122.33, 47.64)),
//The zoom level. Typically a value between 0 and 22.
zoom(14),
//The amount of tilt in degrees the map where 0 is looking straight down.
pitch(45),
//Direction the top of the map is pointing in degrees. 0 = North, 90 = East, 180 = South, 270 = West
bearing(90),
//The minimum zoom level the map will zoom-out to when animating from one location to another on the map.
minZoom(10),
//The maximum zoom level the map will zoom-in to when animating from one location to another on the map.
maxZoom(14)
)
Genellikle haritayı bir veri kümesine odaklama tercih edilir. Sınırlayıcı kutu, yöntemi kullanılarak MapMath.fromData
özelliklerden hesaplanabilir ve harita kamerası seçeneğine bounds
geçirilebilir. Sınırlayıcı bir kutuyu temel alan bir harita görünümü ayarlarken, kabarcıklar veya simgeler olarak işlenen noktaların piksel boyutunu hesaba katacak bir padding
değer belirtmek genellikle yararlıdır. Aşağıdaki kodda, bir sınırlayıcı kutu kullanarak kameranın konumunu ayarlamak için tüm isteğe bağlı kamera seçeneklerinin nasıl ayarlanacağı gösterilmektedir.
//Set the camera of the map using a bounding box.
map.setCamera(
//The area to focus the map on.
bounds(BoundingBox.fromLngLats(
//West
-122.4594,
//South
47.4333,
//East
-122.21866,
//North
47.75758
)),
//Amount of pixel buffer around the bounding box to provide extra space around the bounding box.
padding(20),
//The maximum zoom level the map will zoom-in to when animating from one location to another on the map.
maxZoom(14)
);
//Set the camera of the map using a bounding box.
map.setCamera(
//The area to focus the map on.
bounds(BoundingBox.fromLngLats(
//West
-122.4594,
//South
47.4333,
//East
-122.21866,
//North
47.75758
)),
//Amount of pixel buffer around the bounding box to provide extra space around the bounding box.
padding(20),
//The maximum zoom level the map will zoom-in to when animating from one location to another on the map.
maxZoom(14)
)
Sınırlayıcı kutunun en boy oranı, haritanın en boy oranıyla aynı olmayabilir, bu nedenle harita genellikle tam sınırlayıcı kutu alanını gösterir, ancak genellikle yalnızca dikey veya yatay olarak sıkıdır.
Harita görünümüne animasyon ekleme
Haritanın kamera seçeneklerini ayarlarken, geçerli harita görünümü ile sonraki arasında bir geçiş oluşturmak için animasyon seçenekleri de kullanılabilir. Bu seçenekler, kamerayı taşımak için geçmesi gereken animasyon türünü ve süreyi belirtir.
Seçenek | Açıklama |
---|---|
animationDuration(Integer durationMs) |
Kameranın görünümler arasında ne kadar süreyle animasyona katıldığını milisaniye (ms) cinsinden belirtir. |
animationType(AnimationType animationType) |
Gerçekleştirilecek animasyon geçişinin türünü belirtir. - JUMP - anında bir değişiklik.- EASE - kameranın ayarlarının kademeli olarak değiştirilmesi.- FLY - uçuşa benzeyen bir yay oluşturan kameranın ayarlarının aşamalı olarak değiştirilmesi. |
Bu kod, üç saniyelik bir süre boyunca bir FLY
animasyon kullanarak harita görünümüne nasıl animasyon ekleyebileceğinizi gösterir:
map.setCamera(
center(Point.fromLngLat(-122.33, 47.6)),
zoom(12),
animationType(AnimationType.FLY),
animationDuration(3000)
);
map.setCamera(
center(Point.fromLngLat(-122.33, 47.6)),
zoom(12.0),
AnimationOptions.animationType(AnimationType.FLY),
AnimationOptions.animationDuration(3000)
)
Yukarıdaki kod, Harita görünümünün New York'tan Seattle'a animasyonunu gösterir:
Sonraki adımlar
Haritalarınıza eklenecek daha fazla kod örneği için aşağıdaki makalelere bakın: