Есть ли автономная геокодирование, библиотека или база данных для iOS?
Есть ли (автономная) структура геокодирования, библиотека или база данных для iOS? Место для получения данных?
Мне нужно иметь возможность геокодировать уличные адреса в городах по всему миру (или, по крайней мере, в Соединенных Штатах) на широту и долготу для расчета восхода и захода солнца.
Информация должна быть в формате, который будет работать на iPhone OS. (Либо файл базы данных, либо написанный на C/ Objective-C)
Ответы
Ответ 1
Что я рекомендую:
- Получите данные с Open Street Maps, лицензия просто означает, что вы указываете источник. В некоторых странах есть некоторые экстракты OSM, я не знаю, есть ли некоторые из них уже для некоторых городов, но это может быть достигнуто на вашей стороне, я думаю.
[EDIT]
Например, вы можете загружать данные из http://www.openstreetmap.org, просто нажмите вкладку экспорта, выберите формат данных Open Street Map XML Data и затем экспортируйте данные: Получаем данные OSM для выбранного ограничивающего прямоугольника.
Еще некоторые данные можно загрузить из облачного: http://downloads.cloudmade.com/
- Затем импортируйте эти данные в базу данных sqlite. Затем создайте пространственный индекс из этой базы данных sqlite с географической информацией в нем: такую вещь можно достичь с помощью spatialite (пространственный - очень хорошее расширение ГИС для Sqlite)
[EDIT] Spatialite предоставляет инструмент GUI для создания пространственной базы данных из разных форматов источников данных. Инструмент можно загрузить как двоичный: http://www.gaia-gis.it/spatialite-2.4.0-4/binaries.html (spacesite_gui) Я привязываюсь к бета-версии 2.4.0, потому что тот, который лучше всего поддерживает файлы .osm.
Другим хорошим источником является QGis для визуализации данных OSM/создания пространственной базы данных. Это бесплатный/открытый источник и очень зрелый:
http://www.qgis.org/
- После того, как вы это сделаете, вы сможете реализовать базовый геокодер, поскольку пространственный объект реализует такие функции, как "дайте мне ближайшую линию к этой GPS-координате" (основная функция ГИС).
Это очень грубые линии. Я могу найти гораздо более глубокие детали, если вы заинтересованы в таком подходе: я это сделал на моей стороне. Я знаю, как скомпилировать spaceite для iOS (это заняло у меня некоторое время...), а также как импортировать данные OSM и создать для него пространственные индексы.
Ответ 2
Я не думаю, что существует существующая инфраструктура. Однако вы можете сделать хуже, чем связаться с автором этого обмана: Обратное геокодирование без веб-доступа
Ответ 3
Я не уверен, как сделать то, что вы хотите сделать, но вот некоторые рамки:
http://code.google.com/apis/maps/documentation/geocoding/ (онлайн)
http://www.gisgraphy.com/ (я думаю, что он отключен)
эта ссылка также может помочь вам:
Как преобразовать адрес в широту/долготу?
Надеюсь, это помогло:)
EDIT:
Это также может помочь вам в пути:) http://www.geonames.org/export/
во время поиска ответа я узнал, что некоторые люди утверждают, что это ресурсоемкие, и я думаю, что они могут быть правильными:) так считайте, что когда вы создаете свое приложение;)
Ответ 4
Этот ответ может помочь:
Как преобразовать адрес в широту/долготу?
Возможно, вам придется выполнить дополнительную работу.
Ответ 5
Все адреса каждого места в мире (или США)... Это занимает много места, больше, чем может обрабатывать среднее устройство iOS. Итак, определенно не автономная версия.
Однако вы можете просто использовать Open Street Maps, которые могут помочь вам получить некоторые данные, хранить их в каком-то кеше (например, хранить только все в радиусе 5 миль) и обновлять этот кеш при выходе из области.
Ответ 6
Какие SDK можно использовать для создания автономных приложений карт для iPad/iPhone?
Ответ 7
Если разработчики ищут учебник для пути OpenStreetMaps, я настоятельно рекомендую этот учебник:
http://shikii.net/blog/offline-maps-in-ios-using-openstreetmap-and-route-me/
Это простой учебник, который поможет вам начать работу с Open Street Maps, в котором используется репозиторий Route-me github. Вот пример приложения на github:
https://github.com/Label305/iOS-OfflineMaps-Example
Надеюсь, что это поможет