Harita karoları, dünyanın dizine eklenmiş bir ızgaraya bölünmesinden ibarettir. Harita verilerine birden fazla kartografik ölçekte verimli ve dinamik bir şekilde erişmenizi ve bu verileri kullanmanızı sağlar. Map Tiles API, Google tarafından seçilenler de dahil olmak üzere birden fazla tematik coğrafi veri kümesine erişmenizi sağlar:
Google'ın haritacılık stiline sahip vektör topografik verilerine dayalı yol haritası resim karoları.
Dünyanın yukarıdan aşağıya (nadir) görüntülerini sunan, hem uydu hem de hava kameraları tarafından çekilen ortofotoğrafçılık.
Kabartma eş yükselti haritaları
2D Map Tiles'ın tümü coğrafi referanslıdır ve birbirleriyle uyumludur. Bu özellikler, görüntü alanının coğrafi kapsamına ve yakınlaştırma seviyesine göre seçilir. Yakınlaştırma seviyeleri, sıfır (dünyanın tamamını görüntülemek için) ile 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 karoları alabilirsiniz.
| Harita teması | Açıklama |
|---|---|
| Yol haritası | Yollar, binalar, önemli yerler ve siyasi sınırlar |
| Uydu | Uzaydan çekilen fotoğraflar |
| Arazi | Bitki örtüsü gibi doğal özellikleri gösteren bir eş yükselti 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 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 gönderdiğiniz her isteğe oturum jetonunu eklemeniz gerekir.
Görüntü alanı bilgi istekleri
Görüntü alanı, dünya sahnesini çerçeveleyen kutunun boyutunu tanımlar. Görüntü alanı bilgi istekleri, mevcut görüntü alanınızı oluşturan harita karolarıyla ilgili ayrıntıları döndürür. Görüntü alanı bilgilerini istemenizin nedeni, mevcut olmayan yakınlaştırma seviyelerinde görüntü istemekten kaçınmaktır.
Örneğin, çoğu şehirde 22 yakınlaştırma seviyesinde görüntüler bulunur ancak okyanus için bu seviyede görüntü yoktur. Çünkü bu seviyede okyanus, yalnızca özelliksiz mavi kareler olarak görünür.
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 seviyesi.
north,south,east,west- Görüntü alanının en kuzey, en güney, en doğu ve en batı noktaları derece cinsinden ifade edilir. Kuzey ve güney (-90,90) aralığında, doğu ve batı ise (-180, 180) aralığında olmalıdır. Antimeridyeni geçen sınırları ifade etmek için batı pozitif (örneğin, 170) ve doğu negatif (örneğin, -170) olabilir. Tüm parametreler zorunludur.
Görüntü alanı bilgileri yanıtları
Görüntü alanı yanıtı, hangi alanlarda hangi yakınlaştırma seviyelerinde görüntü olduğunu gösterir. Görüntü alanı bilgileri 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ı ve uydu karolarını gösterirken haritanızda göstermeniz gereken bir ilişkilendirme dizesi içerir. Daha fazla bilgi için Map Tiles API Politikaları'na bakın.
maxZoomRect- Mevcut görüntü alanıyla çakışan sınırlayıcı dikdörtgenlerin bir dizisini içerir. Ayrıca her dikdörtgen içinde kullanılabilen maksimum yakınlaştırma seviyesini de içerir.
Parça koordinatı işlevleri
Enlem/boylam çiftlerini belirli bir yakınlaştırma seviyesinde parça koordinatlarına dönüştürmek için çoğu programlama dilinde araçlar (basit işlevler) mevcuttur.
Önce latLng değerini bir noktaya, ardından noktayı parça koordinatlarına dönüştüren aşağıdaki JavaScript kodu örneğini inceleyin.
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
};
}