gis and openlayers

有个需求将dwg文件放在web项目中进行显示,可以进行缩放平移。可以在图中的某条线上加备注,鼠标移动过去显示备注。

最初想要将dwg直接发布到地图服务器上去,然后用openlayer加载地图进行处理,后来发现dwg发布到地图上去的成本较高,转为shapefile后会出现信息丢失,效果不好。后来想把dwg转为svg,但得到的文件有6M之大,用js直接绘制到网页中效率非常低,用到的js库为raphaeljs. 后来想用Google Earth发布dwg文件,但web中调用好像支持不好,也没实验。最终用autocad输出图片,拼接为大图后作为底图直接让openlayer加载实现,牺牲了图片的质量。

  • 调研的gis服务器,主要有开源和商业的。开源的有geoserver、mapserver。商业性质的有arcgis。

geoserver是java写的,安装使用方便简单,都有图形界面操作。支持shapefile和jpg等图片作为地图。但shapefile的自己制作麻烦,由autocad的dwg文件转换的shapefile会出现文字不显示、颜色丢失等问题,支持不是很好。直接拿图片作为地图进行发布,渲染效率较低,常常报错或卡住。

mapserver是基于c的,内含有apache。只实验了shapefile的发布过程,其过程较为麻烦,要制作mapfile文件,有软件可以制作但觉得难度还是有一些。感觉这个服务器性能还是功能上都比较强大。

argis能够打开dwg文件,可以转换到shapefile等一系列格式的文件上去或者数据库中,但这东西还是收费的,而且很大。安装了desktop和server实验了一下。desktop主要用于制作地图,dwg可以无损的保存为mxd文件,按照道理来说可以发布到arcgis server中,但按照网上的破解安装安装(win7 32bit argis server10)后(系统会多了三个用户)一直没能登陆上去,也没实验是啥效果。感觉这个太专业了,只为了这个功能的实现搞这么大不值当。

  • svg的web显示

目前的js可以直接绘制svg文件,并对path等绘制元素添加事件,可惜文件太大,渲染速度慢。raphaeljs本身没有加载文件、平移、缩放功能,但有人做出了插件,可以使用。

  • openlayer直接加载图片作为地图
此方面的例子较为简单,技术难点就集中到了openlayer身上,这方面网上资料较多。
 
参考文献:

 Welcome to MapServer — MapServer 6.2.0 documentation

CAD to GIS Shapefile : GIS Pathway…

MapServer Quickstart — OSGeo-Live 6.0 Documentation

An Introduction to MapServer — MapServer 6.2.0 documentation

基于Mapserver的WebGIS下Java环境配置附JSP例子_谷布_百度空间

GeoServer地图开发解决方案(四):发布Web地图服务(WMS)篇 – Bēniaǒ – 博客园

Geoserver发布图片地图vip.converse3d.com/index.php?m=content&c=index&a=con2&iid=230

转载自:https://blog.csdn.net/MUTOUYIHAO/article/details/8500933

You may also like...