向ArcGIS导入OpenStreetMap数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向ArcGIS导入OpenStreetMap数据相关的知识,希望对你有一定的参考价值。
我使用的是http://www.openstreetmap.org/网站导出的数据,在ArcMap10.1里使用OpenStreetMap Toolbox里的Load OSM File工具向ArcMap10.1里导入OSM数据时,报错:
“Unable to locate the osm_domains.xml”在插件的安装路径下有这个文件,为什么工具不认呢?
请问有人遇到过类似的问题吗?如何解决的啊?
The osm_domains.xml file should get installed with the ArcGIS Editor for OSM. It sounds like perhaps your instance is not finding it at the location where it wants to look for it. Here is how to check: In ArcMap, enable the Editor toolbar (e.g., Customize menu at top, select "Toolbars", make sure "Editor" is checked). Then when you click on the "Editor" button on the Editor toolbar, you'll see at the bottom of the menu "Options". Click Options, and select the OpenStreetMap tab in the Options window. The second field in that window is "OSM Domains", and should be a filepath to the osm_domains.xml file. Check the following:
1) Does the domain listed there exist on your computer?
2) If so, is there an osm_domains.xml file at that location (probably not)?
3) In either case, do this: Browse to the place where you installed ArcGIS Editor for OpenStreetMap (e.g., typically something like C:\Program Files\ESRI\OSMEditor) and open the "Bin" folder. Is there an "osm_domains.xml" file there? If so, update this OMS Domains parameter in the OpenStreetMap options on the Editor toolbar to the location of your osm_domains.xml file - something like C:\Program Files\ESRI\OSMEditor\Bin\osm_domains.xml. Then Click OK. ArcMap should remember this preference and you should no longer see the error.
Let me know if this works for you.
Christine
source: https://esriosmeditor.codeplex.com/discussions/431408 参考技术B 为什么不直接下载OSM网站上的shp格式的数据呢。
[原]导入OpenStreetMap海图数据,并在GeoServer上发布
转载请注明作者think8848和出处(http://think8848.cnblogs.com)
上回我们说到如何《在GeoServer中为OpenStreetMap数据设置OSM样式》,文中本来是要发布海图的,因为时间太晚了,所以今天补上吧。
1. 下载OpenStreetMap海图数据
请打开这个网站下载http://openstreetmapdata.com/data/water-polygons OpenStreetMap海图数据(是否称为水图更好点:))
这里面有三个文件,本文将用到第二个文件
因为我们下载的OpenStreetMap的中国数据就是Mercator投影坐标系,SRID为3857,而上文参考的这个例子使用的是WGS84坐标系,SRID为4326,下载第一个文件你还需要自已转一下,所以为了避免麻烦,直接下第二个就好了。
2. 将shp文件导入到PostGis中
先将下载好的数据弄到GeoServer所以服务器,然后解压,然后使用shp2pgsql工具导入到PostGis中,命令如下:
su postgres
shp2pgsql -s 3857 -I -D /tmp/water-polygons-split-3857/water_polygons.shp ocean_all | psql -d chinaosmgisdb -U think8848
这里注意一点,在GeoServer中用了哪个Postgresql用户,这个 -U 参数后就用哪个用户,免得导了数据后没有访问权限
3. 将我们发布的地图范围所在区域(bounds)海图从完整的海图中切出来
psql -U think8848 -d chinaosmgisdb -W CREATE TABLE ocean AS WITH bounds AS ( SELECT ST_SetSRID(ST_Extent(way)::geometry,3857) AS geom FROM planet_osm_line ) SELECT 1 AS id, ST_Intersection(b.geom, o.geom) AS geom FROM bounds b, ocean_all o WHERE ST_Intersects(b.geom, o.geom);
使用QGis看一眼啥效果
可以看到轮廓已经出来了,不过“帝国主义忘我之心不死啊”,OpenStreetMap默认把我大南海切去了一半啊,所以我们要带着批判的态度去使用它!!!HaHaHa...
4. 在GeoServer中创建ocean图层
直接在GeoServer建图层即可,唯一要注意的就是在图层样式中选择chinaosm:ocean样式
然后在图层组osm中将这个层加进去,放到合适的位置即可
5. 在Layer Preview中查看效果
Good!不再像昨天一样是白色的了。
写在后面的话,GeoServer + PostGis + OpenStreetMap基本上告一段落,接下来要学习PostGis + OpenStreetMap + node-mapnik,好掌握PostGis + OpenStreetMap最佳实践,以便选择一个更好的方式发布地图服务。
以上是关于向ArcGIS导入OpenStreetMap数据的主要内容,如果未能解决你的问题,请参考以下文章
OpenStreetMap Google 百度 Bing arcgis瓦片地图服务(TMS)以及瓦片计算