Есть ли автономная структура геокодирования, библиотека или база данных для iOS? - PullRequest
16 голосов
/ 07 декабря 2010

Существует ли (офлайн) платформа геокодирования, библиотека или база данных для iOS? Место, откуда можно получить данные?

Мне нужно иметь возможность геокодировать уличные адреса в городах по всему миру (или, по крайней мере, в Соединенных Штатах) в широту и долготу для расчетов восхода и захода солнца.

Информация должна быть в формате, который будет работать на iPhone OS. (Либо файл базы данных, либо написанный на C / Objective-C)

Ответы [ 6 ]

29 голосов
/ 12 декабря 2010

Что я бы порекомендовал:

  • Получите данные из Open Street Maps, лицензия подразумевает, что вы упоминаете источник. Есть некоторые выдержки из OSM для некоторых стран, я не знаю, есть ли уже сделанные для некоторых городов, но я думаю, что это может быть достигнуто с вашей стороны.

[EDIT] Например, вы можете загрузить данные из http://www.openstreetmap.org, просто перейдите на вкладку экспорта, выберите формат XML-данных Open Street Map и экспортируйте данные: вы получите данные OSM для выбранного ограничивающего прямоугольника. Еще некоторые данные можно загрузить из облачного хранилища: http://downloads.cloudmade.com/

  • Затем импортируйте эти данные в базу данных sqlite. Затем создайте пространственный индекс из этой базы данных sqlite с географической информацией: такого можно достичь, используя Пространственный (Пространственный - очень хорошее расширение ГИС для Sqlite)

[EDIT] Spatialite предоставляет инструмент с графическим интерфейсом для создания пространственной базы данных из различных форматов источников данных. Инструмент можно скачать в двоичном формате здесь: http://www.gaia -gis.it /atialite-2.4.0-4 / binaries.html (пространственный_гуй) тот, который лучше всего поддерживает файлы .osm.

Еще один хороший ресурс - QGis для визуализации данных OSM / создания пространственной БД. Это бесплатно / с открытым исходным кодом и очень зрелый: http://www.qgis.org/

  • как только вы это сделаете, вы сможете реализовать базовый геокодер, потому что пространственный объект реализует такие функции, как «дать мне самую близкую линию к этой координате GPS» (базовая функция ГИС).

Это очень грубые линии. Я могу вдаваться в более глубокие детали, если вы заинтересованы в таком подходе: я достиг этого на своей стороне. Я знаю, как скомпилировать пространственный объект для iOS (это заняло у меня некоторое время ....), а также как импортировать данные OSM и создавать для них пространственные индексы.

0 голосов
/ 16 июля 2012

Если разработчики ищут учебное пособие для пути OpenStreetMaps, я настоятельно рекомендую это учебное пособие:

http://shikii.net/blog/offline-maps-in-ios-using-openstreetmap-and-route-me/

Это простое учебное пособие для начала работы с Open Street Maps., который использует git-репозиторий Route-me.Вот пример приложения на github:

https://github.com/Label305/iOS-OfflineMaps-Example

Надеюсь, это поможет

0 голосов
/ 16 декабря 2010

Все адреса каждого места в мире (или США) ... Это занимает много места, больше, чем обычное устройство iOS может выдержать. Так что, безусловно, не офлайн версия.

Однако вы можете просто использовать Open Street Maps, которые могут помочь вам получить некоторые данные, хранить их в каком-то кеше (например, хранить только все в радиусе 5 миль) и обновлять этот кеш при выходе из области.

0 голосов
/ 09 декабря 2010

Этот ответ может помочь: Как преобразовать адрес в широту / долготу?

Возможно, вам придется проделать дополнительную работу.

0 голосов
/ 09 декабря 2010

Я не уверен, как сделать то, что вы хотите сделать, но вот некоторые рамки:

http://code.google.com/apis/maps/documentation/geocoding/ (онлайн) http://www.gisgraphy.com/ (я думаю, что он не в сети)

эта ссылка также может вам помочь:

Как преобразовать адрес в широту / долготу?

Надеюсь, это помогло:)

EDIT:

Это также может помочь вам в пути :) http://www.geonames.org/export/

во время поиска ответа я обнаружил, что некоторые люди утверждают, что это ресурсоемкий процесс, и я думаю, что они могут быть правы :)

0 голосов
/ 09 декабря 2010

Я не думаю, что существует существующий фреймворк. Однако вы можете сделать хуже, чем связаться с автором этого дурака: Обратное геокодирование без веб-доступа

...