Шейп-файл с ObjectiveC

Мне нравится знать, есть ли класс в Objective-C, который манипулирует шейп-файлом (чтение/запись/редактирование)?

Я нашел много информации о файлах kml, но ничего о файлах shp, но определенно хочу избежать необходимости преобразования формата файлов (shp-> kml).

Спасибо


person shadowing    schedule 05.05.2011    source источник
comment
Планируете ли вы подтвердить любой из этих ответов?   -  person Greg Combs    schedule 18.05.2011


Ответы (2)


Есть один от Паскаля Брандта, ... (это немного упрощенно, но, безусловно, помогает мне) ... CocoaShapeFile. Он только что одел C-функции в одежду Objective-C, но для чтения это работает просто отлично. Если вы снимаете для iOS вместо Cocoa, вам придется сделать небольшое перекодирование/преобразование самостоятельно.

Приложив немного усилий, я смог запустить его на iPad, используя MapKit и используя подсчет ссылок вместо сборки мусора (недоступно на iOS).

Чтобы потенциально немного облегчить вашу боль (правда, я не знаю, что вы планируете делать с шейп-файлами), я выпустил быстрый и грязный репозиторий git, iOS-Shapefile, в котором показано, как получить формы шейп-файла (например, точки и многоугольники/полилинии) в iOS MKMapView.

Что касается написания и редактирования (поскольку это было вне моего интереса), я думаю, вам, вероятно, придется использовать свои собственные методы, отклоняющиеся от того, что я здесь предоставил.

person Greg Combs    schedule 07.05.2011

См. библиотеку Shapelib. Она написана на C, но может использоваться в Objective-C, поскольку OBJ-C является надмножеством. С :)

person Richard    schedule 05.05.2011
comment
Технически вы не сможете использовать библиотеку Shapelib, поскольку она имеет лицензию LGPL, несовместимую с App Store. - person dbainbridge; 29.07.2013
comment
Уверены ли вы? Я думаю, вы имеете в виду GPL, а не LGPL. У вас есть источник? - person jocull; 06.12.2013
comment
Кажется, Shapelib на самом деле находится под двойной лицензией, поддерживает MIT - person mkrus; 22.08.2014