Таким образом, у меня есть несколько (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);
Ответ - не выполнять этот тип преобразования из KML в закодированный GPolygon в MKPolyline. Шаг GPolygon совершенно не нужен. Если у вас есть KML, а не сжатый KMZ, вы можете просто проанализировать XML, чтобы получить строку координат для заполнения MKPolyline.
Если вы действительно хотите перейти от кодированного GPolygon к MKPolyline, вам нужно декодировать GPolygon. Похоже, Стефано Булиани придумал , как это сделать .
Некоторые из наиболее применимых примеров, которые я нашел полезными, были Reluctant Blogger и The Navarra Group и Mostly Harmless и (для анализа), SeismicXML .
Все началось с попытки взять шейп-файл и запустить его в MapKit. Хотя это не совсем простое решение, теперь у меня есть рабочий процесс (только для Mac). (Подсказка: шейп-файл для kml помог вам? Используйте ogr2ogr, часть структуры GDAL ).