KML-> GPolygon-> MKPolyline?

Таким образом, у меня есть несколько (ginormous) KML's, которые я успешно преобразовал в 180 некоторые - нечетная Google Maps закодировала полигоны/ломаные линии. У кого-либо есть опыт или мысли о том, как взять их и превратить его в объект MKPolyline, подходящий для использования на MapKit iOS4?

Вот то, на что я смотрю прямо сейчас.....

var sw = new GLatLng(25.8373770496571, -106.645646000733);
var ne = new GLatLng(36.50070452533, -93.50813136878951);
var bounds = new GLatLngBounds(sw, ne);
var mapZoomLevel = map.getBoundsZoomLevel(bounds);
var mapCenter = new GLatLng(31.16904078749355, -100.07688868476126)
map.setCenter(mapCenter, mapZoomLevel);

var polygon1 = new GPolygon.fromEncoded({
  polylines: [
    {points: "sxw}En~}dR@loC?puCAtt@[.......]@T^DE?z_@G^Jjw@G?",
     levels: "PBADDCCCDDACDDDDDDDBCB[.......]@EGFDEFDEDCCCDEDP",
     color: "#0000ff",
     opacity: 0.7,
     weight: 3,
     numLevels: 18,
     zoomFactor: 2}],
  fill: true,
  color: "#0000ff",
  opacity: 0.4,
  outline: true
});
map.addOverlay(polygon1);
1
задан Greg Combs 10 July 2010 в 22:29
поделиться

1 ответ

Ответ - не выполнять этот тип преобразования из KML в закодированный GPolygon в MKPolyline. Шаг GPolygon совершенно не нужен. Если у вас есть KML, а не сжатый KMZ, вы можете просто проанализировать XML, чтобы получить строку координат для заполнения MKPolyline.

Если вы действительно хотите перейти от кодированного GPolygon к MKPolyline, вам нужно декодировать GPolygon. Похоже, Стефано Булиани придумал , как это сделать .

Некоторые из наиболее применимых примеров, которые я нашел полезными, были Reluctant Blogger и The Navarra Group и Mostly Harmless и (для анализа), SeismicXML .

Все началось с попытки взять шейп-файл и запустить его в MapKit. Хотя это не совсем простое решение, теперь у меня есть рабочий процесс (только для Mac). (Подсказка: шейп-файл для kml помог вам? Используйте ogr2ogr, часть структуры GDAL ).

2
ответ дан 2 September 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: