使用KML作为Openlayers的底图
最近的项目对地图的精度要求不高,就不需要搭建Geoserver了,用Openlayers加载vector做底图,比较了一下,使用了KML格式,找了一种shp转KML的方法
到http://arcscripts.esri.com/details.asp?dbid=14273下载 Export to KML 2.5.4 一款脚本,下载后安装,在arcgis(v9.3)里会出现一个Google Earth的图标的按钮悬浮在界面上,运行后可以选择图层进行转换。
Vector layer在Openlayers里只能作为overlay,不能作为baselayer,可以通过添加一个空白的Image layer作为baselayer,之后加载Vector layer。
代码示例:
function mapviewInit(){ var map = new OpenLayers.Map( 'mapdiv', {maxResolution:0.703125,allOverlays: true} ); var bou = new OpenLayers.Layer.Vector("KML", { styleMap: new OpenLayers.StyleMap({ pointRadius: 3, fillColor: "#ffcc66", strokeColor: "#ff9933", strokeWidth: 2 }), strategies: [new OpenLayers.Strategy.Fixed()], protocol: new OpenLayers.Protocol.HTTP({ url: "kml/bou2_4l.kml", format: new OpenLayers.Format.KML({ extractStyles: false, extractAttributes: false, maxDepth: 2 }) }) }); map.addLayer(bou); map.setCenter(new OpenLayers.LonLat(112,36),8,false,true); }
PS:Esri官方网站的ArcScripts栏目里有不少实用脚本,需要时可以去搜搜,也许能省些力气(http://arcscripts.esri.com/)
附:中国地图 省界 省会 kml
转载自:https://blog.csdn.net/iteye_7936/article/details/82122587