Harita Kutuları, dünyanın dizinli bir ızgaraya bölünmesidir. Bu özellik, harita verilerine birden fazla kartografik ölçekte dinamik ve verimli bir şekilde erişmenizi ve bunları kullanmanızı sağlar. Map Tiles API, Google tarafından seçilenler de dahil olmak üzere birçok tematik coğrafi veri kümesine erişmenizi sağlar:
Google'ın kartografik stiline sahip vektör topoğrafik verilere dayanan yol haritası resim parçaları.
Dünyanın yukarıdan aşağı (nadir) görüntülerini sunan, hem uydu hem de hava kameraları ile çekilen ortopfotoğrafçılık.
Dağ gölgesi kontür haritaları.
2D Harita Karolarının tümü coğrafi referanslı ve birbirine hizalıdır. Bunlar, görüntü alanının coğrafi kapsamına ve yakınlaştırma düzeyine göre seçilir. Yakınlaştırma seviyeleri sıfır ile (dünyayı bir bütün olarak görüntülemek için) 22 (sokaklar ve blokları görüntülemek için) arasında değişir.
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 jetonu istemeniz gerekir. Oturum jetonu, haritanızın ve görüntü alanınızın mevcut durumunu izler. Oturum jetonunuzu ayarlarken mapType
değerini, istediğiniz harita temasıyla eşleşecek şekilde ayarlamanız gerekir.
Ardından, Map Tiles API'ye yaptığınız isteklerin her birine oturum jetonunu eklemeniz gerekir.
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, geçerli görüntü alanınızı oluşturan harita parçalarıyla ilgili ayrıntıları döndürür. Görüntü alanı bilgilerini istemenizin nedeni, mevcut olmayan yakınlaştırma düzeylerinde görüntü isteğinde bulunmadığınızdan emin olmaktır.
Örneğin, çoğu şehirde görüntü yakınlaştırma düzeyi 22'dir; ancak okyanusun görüntüsü, özelliksiz mavi kareler gösterdiği için okyanusta değildir.
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 cinsinden ifade edilir). Kuzey ve güney aralık (-90,90), doğu ve batı aralık (-180, 180) aralığında olmalıdır. Antimeridyeni aşan sınırları ifade etmek için batı pozitif (ör. 170) ve doğu negatif olabilir (örneğin, -170). Tüm parametrelerin kullanılması zorunludur.
Görüntü alanı bilgilerine ilişkin yanıtlar
Görüntü alanı yanıtı, hangi alanlarda görüntü olduğunu ve hangi zum düzeylerinden haberdar olduğunu belirtir. 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
- Yol haritasını ve uydu karolarını görüntülerken haritanızda görüntülemeniz gereken bir ilişkilendirme dizesi içerir. Daha fazla bilgi için Harita Kutuları API Politikaları'na bakın.
maxZoomRect
- Geçerli görüntü alanıyla çakışan bir sınırlayıcı dikdörtgenler dizisi içerir. 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), enlem/boylam çiftlerinden belirli bir yakınlaştırma düzeyindeki parça koordinatlarına dönüştürmek için çoğu programlama dilinde mevcuttur.
Önce latLng
'den bir noktaya ve daha sonra bir noktadan karo koordinatlarına dönüştürme yapan aşağıdaki JavaScript kodu örneğini düşünün.
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
};
}