2010-09-07 65 views
0

我正在做一个项目使用OpenStreetMap和OpenLayers。目前,我的任务是将OSM文件中的数据插入到PostgreSQL中。当我检出Osmosis(将数据从OSM文件传输到数据库的工具)时,它说那里有一个例子,“将一个行星文件导入本地PostgreSQL rails端口数据库”。这是否意味着我必须为我的项目使用Ruby on Rails?我不知道Rails,并了解它会占用我太多的时间。我可以使用PHP访问数据库吗?请帮帮我。非常感谢!PHP的OpenStreetMap应用程序

+0

找到列出的工具中散落一些有用的代码,我建议您用'PHP'更换'import'标签,以获得更好的效果。 – 2010-09-07 06:22:28

+0

做到了!谢谢! – Jairo 2010-09-07 06:30:51

+0

您可能还会询问http://gis.stackexchange.com/ – mtrw 2010-09-07 06:53:37

回答

0

您需要知道打开www.openstreetmap.org时看到的界面/应用程序是用RoR编写的。用于访问数据的API(地理编码)通过PHP API完成。所以如果你不打算使用它,你不需要Rails。数据库不关心。

顺便说一句,osmosis的替代方案是osm2pgsql,它不会“说”任何有关Rails依赖性的东西(也就是说,如前所述,不管用)。

2

您可以将节点,路径,标记等导入到OpenStreetMap服务器上使用的数据库模式中。 Ruby on Rails migrations最终成为OSM服务器所使用的最新架构的真正来源。但是,您可能希望使用与脚本/ contrib目录中的Osmosis分发捆绑的数据库创建脚本来创建具有类似模式的数据库。

或者,对于某些应用程序,您可能希望PostGIS启用Postgres数据库(加载一系列地理空间函数和数据类型),然后以使用这些类型的格式加载OpenStreetMap数据。你可以使用osmosis或osm2pgsql来做到这一点。请参阅PostGIS

或者对于更基本的应用程序,您可能会考虑为自己解析.osm格式。一个osm file包含一些“节点”和“方式”元素。其中每个都可以有几个“标签”元素。还有“关系”元素。对许多应用程序来说,这些可能是不必要的,但这一切都取决于您想要执行的操作。也许你只需要节点(对于POI数据应用程序)对于某些工作来说,直接使用.sm文件可能是可行的,在PHP中解析而不涉及数据库,但通常不适用于任何有意义的大面积地图数据。

你可以在Category:PHP