我从openstreetmap下载了.osm文件,我们的地图,我的问题是如何将这些数据导入我的mysql数据库?
答案 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