KML -> GPolygon -> MKPolyline? - PullRequest
       19

KML -> GPolygon -> MKPolyline?

1 голос
/ 11 июля 2010

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

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

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 Ответ

2 голосов
/ 12 июля 2010

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

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

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

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

...