Eşzamanlılık eğrileri API yanıtını işleme ve görselleştirme

Isochrones API, RFC 7946'ya uygun standart GeoJSON biçiminde geometri döndürür. Yanıt her zaman isochrone.geoJson (gRPC'de isochrone.geo_json) altında bir MultiPolygon geometri nesnesi içerir:

  • Koordinat sırası: Her konum, WGS 84 ondalık derece cinsinden bir [longitude, latitude] çiftidir.
  • Birden fazla poligon (coordinates[i]): Erişilebilir eş zamanlı alanlar, birden fazla ayrık poligondan oluşabilir (örneğin, yüksek hızlı bir köprü veya tünel ayrı bir erişilebilir cebe bağlandığında ya da ±180° antimeridyeni geçen bir poligon, RFC 7946 §3.1.9 uyarınca meridyen boyunca bölündüğünde).
  • Dış kabuklar ve iç delikler (coordinates[i][j]): Her çokgen coordinates[i] içinde, ilk doğrusal halka (coordinates[i][0]) saat yönünün tersine sarılmış dış kabuktur ve sonraki doğrusal halkalar (coordinates[i][1..k]), RFC 7946 §3.1.6 sağ el kuralına göre saat yönünde sarılmış iç delikleri (göller, parklar veya haritalandırılmamış cepler gibi) temsil eder. Her lineer çember kapalıdır (ilk ve son [longitude, latitude] konumları aynıdır).

Aşağıdaki örnekte, iç deliği olan bir ana poligon ve ikinci bir ayrık poligon içeren MultiPolygon yanıtı gösterilmektedir:

{
  "isochrone": {
    "geoJson": {
      "type": "MultiPolygon",
      "coordinates": [
        [
          [
            [-122.340000, 47.600000],
            [-122.320000, 47.600000],
            [-122.320000, 47.615000],
            [-122.340000, 47.615000],
            [-122.340000, 47.600000]
          ],
          [
            [-122.334000, 47.604000],
            [-122.334000, 47.609000],
            [-122.328000, 47.609000],
            [-122.328000, 47.604000],
            [-122.334000, 47.604000]
          ]
        ],
        [
          [
            [-122.355000, 47.602000],
            [-122.348000, 47.602000],
            [-122.348000, 47.608000],
            [-122.355000, 47.608000],
            [-122.355000, 47.602000]
          ]
        ]
      ]
    }
  }
}

Eş zamanlılık haritasını görselleştirme

API, standart GeoJSON döndürdüğünden yanıtı Maps JavaScript API'yi kullanarak görselleştirebilirsiniz. google.maps.Data sınıfı, GeoJSON'u yerel olarak destekler. Bu nedenle, [longitude, latitude] koordinat sırasını manuel olarak tersine çevirmeniz gerekmez.

Aşağıdaki JavaScript snippet'i, API yanıtının doğrudan haritaya nasıl ekleneceğini gösterir:

// Assume 'map' is an initialized google.maps.Map object
// and 'responseData' is the parsed JSON payload returned by the Isochrones API.

const isochroneGeoJson = responseData.isochrone.geoJson;

// Wrap the geometry in a standard GeoJSON Feature
const geoJsonFeature = {
    type: "Feature",
    geometry: isochroneGeoJson,
    properties: {}
};

// Add the GeoJSON Feature to the map's data layer
map.data.addGeoJson(geoJsonFeature);

// Optional: Apply custom styling to the isochrone polygon
map.data.setStyle({
    fillColor: '#4285F4',
    fillOpacity: 0.3,
    strokeColor: '#4285F4',
    strokeWeight: 2
});