使用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

You may also like...