2D Kartlara genel bakış

Yol haritası örneğiHarita Kutuları, dünyanın dizinli bir boyuta bölünmesinden oluşur. ızgara. Harita verilerine verimli ve dinamik bir şekilde erişmenizi ve bu verileri kullanmanızı sağlar . 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.

  • Görüntüyü gönderen hem uydu hem de hava kameraları ile çekilen ortopografi dünyanın yukarıdan aşağı (nadir) görüntüsü.

  • Dağ gölgesi kontür haritaları.

2D Harita Karolarının tümü coğrafi referanslı ve birbirine hizalıdır. Seçildiler yakınlaştırma düzeyine bağlı olarak, anlık görüntü alanının 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 ç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 jetonundan yararlanın. Oturum jetonu haritanızın ve görüntü alanınızın geçerli durumunu izler. Oturumunuzu ayarlarken jeton ise 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ü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. 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

Araçlar (basit işlevler), dönüştürme işlemi için çoğu programlama dilinde mevcuttur enlem/boylam çiftlerinden belirli bir yakınlaştırma düzeyinde parça koordinatlarına kadar çeşitli eşleme türleri kullanılır. 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
  };
}