Harita Kutuları, dünyanın dizinli bir boyuta bölünmesinden oluşur. ızgara. Harita verilerine birden fazla kartografik ölçekte verimli ve dinamik bir şekilde erişmenize ve bu verileri kullanmanız 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.
Dünyanın yukarıdan (nadir) görüntüsünü sunan, hem uydu hem de havadan kameralar tarafından çekilen ortofotoğraflar.
Dağ gölgesi kontür haritaları.
2D harita karolarının tümü coğrafi referanslıdır ve birbirine hizalanmıştır. Bunlar, görüntü alanının coğrafi kapsamına ve yakınlaştırma düzeyine göre seçilir. 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 çekilmiş fotoğrafik görüntüler |
Arazi | Bitki örtüsü gibi doğal özellikleri gösteren bir kontur haritası |
Map Tiles API'den harita karoları istemek için önce bir oturum jetonu istemeniz gerekir. Oturum jetonu
haritanızın ve görüntü alanınızın geçerli durumunu izler. Oturum jetonunuzu ayarlarken 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ünüm 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
Çoğu programlama dilinde, belirli bir yakınlaştırma düzeyinde enlem/boylam çiftlerini karo koordinatlarına dönüştürmek için araçlar (basit işlevler) mevcuttur.
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
};
}