2D Kartlara genel bakış

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