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