PHP для приложения OpenStreetMap - PullRequest
       9

PHP для приложения OpenStreetMap

0 голосов
/ 07 сентября 2010

Я делаю проект с использованием OpenStreetMap и OpenLayers. В настоящее время моя задача - вставить данные из файла OSM, который у меня есть, в PostgreSQL. Когда я проверил Osmosis (инструмент для передачи данных из файла OSM в базу данных), там было сказано, что в одном примере «Импортируйте файл планеты в локальную базу данных портов Railg PostgreSQL». Значит ли это, что я должен использовать Ruby on Rails для своего проекта? Я не знаю Rails, и на изучение этого уйдет слишком много времени. Могу ли я использовать PHP для доступа к базе данных? Пожалуйста, помогите мне. Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 10 сентября 2010

Вы можете импортировать узел, пути, теги и т. Д. В схему базы данных, аналогичную той, которая используется на серверах OpenStreetMap.Ruby on Rails migrations , в конечном счете, является единственным источником новейшей схемы, используемой серверами OSM.Но вы, вероятно, захотите создать базу данных с аналогичной схемой, используя сценарии создания базы данных, связанные с дистрибутивом Osmosis в каталоге script / contrib.

В качестве альтернативы, для некоторых приложений вы можете захотеть, чтобы PostGIS включил вашу базу данных Postgres (загрузил загрузку геопространственных функций и типов данных), а затем загрузил данные OpenStreetMap в формате, который использует эти типы.Вы можете сделать это с помощью Osmosis или osm2pgsql.См. PostGIS

В качестве альтернативы для более простых приложений вы можете посмотреть на разбор формата .osm для себя.Файл osm содержит некоторые элементы "node" и "way".Каждый из них может иметь несколько элементов «tag».Есть также элементы "отношения".Это может быть ненужным для многих приложений, но все зависит от того, что вы хотите сделать.Возможно, вам нужны только узлы (для приложений с данными POI). Для некоторых работ может оказаться целесообразным работать напрямую с файлом .osm, анализируемым в PHP, без использования базы данных, хотя, как правило, не для какой-либо значимо большой области данных карты.

Вы можете найти полезный код, разбросанный по инструментам, перечисленным в Категория: PHP

0 голосов
/ 07 сентября 2010

Вы должны знать, что интерфейс / приложение, которое вы видите при открытии www.openstreetmap.org, написано на RoR.API для доступа к данным - геокодирование - осуществляется через PHP API.Поэтому вам не нужны Rails, если вы не планируете их использовать.Для базы данных все равно.

Кстати, альтернативой Osmosis является osm2pgsql, который ничего не «говорит» о зависимости Rails (то есть, как уже говорилось, в любом случае не используется).

...