Harita Kutuları, dünyanın dizinli bir boyuta bölünmesinden oluşur. ızgara. Harita verilerine verimli ve dinamik bir şekilde erişmenizi ve bu verileri kullanmanızı sağlar . Map Tiles API, şunlara erişmenizi sağlar: Google tarafından seçilenler dahil olmak üzere birden fazla tematik coğrafi veri kümesi:
Google'ın vektörel topoğrafik verilerine dayalı yol haritası resim karoları kartografik stil.
Görüntüyü gönderen hem uydu hem de hava kameraları ile çekilen ortopografi dünyanın yukarıdan aşağı (nadir) görüntüsü.
Dağ gölgesi kontür haritaları.
2D Harita Karolarının tümü coğrafi referanslı ve birbirine hizalıdır. Seçildiler yakınlaştırma düzeyine bağlı olarak, anlık görüntü alanının Zum düzeyleri Sıfırdan (dünyayı bir bütün olarak görmek için) 22'ye (sokaklar ve sokakları görüntülemek için) blok) seçebilirsiniz.
Harita temaları
Aşağıdaki harita temaları için harita parçaları alabilirsiniz.
Harita teması | Açıklama |
---|---|
Yol haritası | Yollar, binalar, önemli yerler ve politik sınırlar |
Uydu | Uzaydan çekilen fotografik görüntüler |
Arazi | Bitki örtüsü gibi doğal özellikleri gösteren bir kontur haritası |
Map Tiles API'den harita parçaları istemek için önce bir
oturum jetonundan yararlanın. Oturum jetonu
haritanızın ve görüntü alanınızın geçerli durumunu izler. Oturumunuzu ayarlarken
jeton ise mapType
değerini, istediğiniz harita temasıyla eşleşecek şekilde ayarlamanız gerekir.
Ardından oturum jetonunu
Harita parçaları API'si.
Görüntü alanı bilgi talepleri
Görüntü alanı, dünya sahnesini çerçeveleyen kutunun boyutunu tanımlar. Görüntü alanı bilgi istekleri, girişinizi oluşturan harita parçaları hakkında Mevcut görüntü alanını. Görüntü alanı bilgilerini istemenizin nedeni, mevcut olmayan yakınlaştırma düzeylerinde görüntü isteğinde bulunmaktan kaçınmalısınız.
Örneğin, çoğu şehirde görüntü yakınlaştırma düzeyi 22'dir. Ancak o zamandan beri okyanus özelliksiz mavi kareler gösterir.
Görüntü alanı isteği, aşağıdaki biçimde bir HTTPS GET isteğidir.
curl "https://tile.googleapis.com/tile/v1/viewport?session=YOUR_SESSION_TOKEN &key=YOUR_API_KEY &zoom=zoom &north=north &south=south &east=east &west=west"
İstek aşağıdaki alanları içerir:
zoom
- Görüntü alanının yakınlaştırma düzeyi.
north
,south
,east
,west
- Görüntü alanındaki en uzak kuzey, güney, doğu ve batı noktaları; derece. Kuzey ve güney aralık (-90,90) aralığında, doğu ve batı da aralık dahilinde olmalıdır (-180, 180) aralığını seçin. Antimeridyeni aşan sınırları ifade etmek için batı pozitif (örneğin, 170) ve doğu negatif olabilir (örneğin, -170). Tümü parametresi gereklidir.
Görüntü alanı bilgilerine ilişkin yanıtlar
Görüntü alanı yanıtı, hangi alanlarda görüntü olduğunu ve hangi yakınlaştırma düzeyinde seviyelere dokunun. Görüntü alanı bilgi yanıtı aşağıdaki biçimdedir.
{
"copyright": "Map data ©2023",
"maxZoomRects": [
{
"maxZoom": 19,
"north": 90,
"south": -90,
"east": 180,
"west": -180
},
{
"maxZoom": 9,
"north": 90,
"south": -90,
"east": 180,
"west": -180
},
{
"maxZoom": 14,
"north": 84.375,
"south": -84.375,
"east": 180,
"west": -180
}, ...
]
}
Yanıt gövdesi aşağıdaki alanları içerir.
copyright
- Aşağıdakileri yaptığınızda haritanızda görüntülemeniz gereken bir ilişkilendirme dizesi içerir: yol haritasını ve uydu karolarını görüntüleme. Daha fazla bilgi için Harita Karoları API Politikaları.
maxZoomRect
- Geçerli dikdörtgenle çakışan bir sınırlayıcı dikdörtgenler dizisi içerir görünüm. Ayrıca, her bir dikdörtgen içinde kullanılabilen maksimum yakınlaştırma düzeyini de içerir.
Parça koordinatı işlevleri
Araçlar (basit işlevler), dönüştürme işlemi için çoğu programlama dilinde mevcuttur
enlem/boylam çiftlerinden belirli bir yakınlaştırma düzeyinde parça koordinatlarına kadar çeşitli eşleme türleri kullanılır.
Aşağıdaki JavaScript kodu örneğini ele alalım:
latLng
bir noktaya, ardından bir noktadan karo koordinatlarına.
var TILE_SIZE = 256;
function fromLatLngToPoint(latLng) {
var mercator = -Math.log(Math.tan((0.25 + latLng.lat() / 360) * Math.PI));
return {
x: TILE_SIZE * (latLng.lng() / 360 + 0.5),
y: TILE_SIZE / 2 * (1 + mercator / Math.PI)
};
}
function fromLatLngToTileCoord(latLng, zoom) {
var point = fromLatLngToPoint(latLng);
var scale = Math.pow(2, zoom);
return {
x: Math.floor(point.x * scale / TILE_SIZE),
y: Math.floor(point.y * scale / TILE_SIZE),
z: zoom
};
}