Как преобразовать шейп-файл в файл на основе плитки

Я разрабатываю приложение для iPhone на основе карты, где мне нужно нарисовать карту любого конкретного региона в зависимости от текущего местоположения этого устройства. Клиент предоставляет мне .shapefile, содержащий все координаты и данные для рисования карты. Мы можем хранить шейп-файл на сервере, и я думаю, что для рисования карты на устройстве с данными, представленными в .shapefile, мне нужны плитки с разным уровнем масштабирования. Итак, на стороне сервера мне нужно преобразовать .shapefile в файл на основе плитки. Но я не знаю, как сделать это преобразование. Кто-нибудь может мне помочь?

Заранее спасибо. Ритц


person user640742    schedule 21.12.2012    source источник


Ответы (1)


Это много работы.

Во-первых, шейп-файлы определяют только геометрию — вам нужно решить, как будут выглядеть объекты. Это точки, линии или многоугольники? Вы хотите, чтобы все они были одного цвета или в зависимости от их атрибутов?

Тогда приобретите mapnik или TileMill и научитесь их использовать. Вы просто хотите представить шейп-файл или хотите, чтобы это было на базовой карте? В этом случае вам придется создать прозрачный набор листов и выполнить наложение растровых изображений в своем приложении.

Это весь мир? И к тому же разрешению, что и Google Maps масштабирует? Получите большой банк дискового хранилища.

http://mapbox.com/tilemill/

http://mapnik.org/

Лично я бы рассмотрел преобразование шейп-файла в векторную форму, которую вы могли бы отобразить на клиенте - возможно, GeoJSON. Тогда подавайте это.

person Spacedman    schedule 21.12.2012