如何将openstreetmap数据放入我的mysql数据库?

时间:2013-11-24 14:06:34

标签: mysql plot mapping openstreetmap leaflet

我从openstreetmap下载了.osm文件,我们的地图,我的问题是如何将这些数据导入我的mysql数据库?

2 个答案:

答案 0 :(得分:2)

当我实现这样的功能时 - 我使用Osmosis工具将数据库转换为XML文件。 http://wiki.openstreetmap.org/wiki/Osmosis。比我创建自己的工具来解析文件并插入记录到数据库。该结构类似于OSM原语http://wiki.openstreetmap.org/wiki/Elements

结果我得到了一个非常庞大的mysql数据库。而且我还必须创建困难的查询来检索数据。

我的建议是不要使用MySQL来存储这些数据。 MySQL - 存储此类数据的解决方案非常糟糕。 PostgreSQL - 更好。您可以使用Osmosis工具快速生成数据库。

如果您只需要获取地图数据,则可以使用http://overpass-api.de/服务。它完美地运作。

答案 1 :(得分:0)

您可以在GDAL(http://www.gdal.org/ogr2ogr.html

中使用 - ogr2ogr

以下是一个例子:

ogr2ogr -F MySQL MySQL:osm_data,host=localhost,user=root,password=mypass -nln test -nlt MULTIPOLYGON -update -overwrite -lco engine=InnoDB -lco MYSQL_FID=ogr_fid -lco cp1252 path\to\file.shp -skipfailures