2D Kartlara genel bakış

Yol haritası örneğiHarita 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
  };
}