最近的项目对地图的精度要求不高,就不需要搭建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
使用ExporttoKML2.5.4脚本将shp转为KML格式在Openlayers中加载矢量图层
文章介绍了如何利用ExporttoKML2.5.4脚本将shp文件转换为KML格式,并通过Openlayers加载矢量图层作为底图。提供了具体的代码示例和安装说明,适合地图精度要求不高的场景。
992

被折叠的 条评论
为什么被折叠?



