前段时间一直纠结于如何根据已有的很多点在地图上画一个区域出来,网上看到很多资料都是根据鼠标来画线或者区域的,对于初学的我实在是伤脑筋,后面终于在Openlayers的官网上的例子中找到了答案,其实方法应该是有多种的,有待挖掘……
/*画区域*/ /*points: Array(<{lon,lat}>)*/ drawPolygon:function(points) { var wkt="POLYGON("; var length=points.length; for(var i=0;i<length;i++) { wkt+=points[i].lon+" "+points[i].lat; if(i!=length-1) { wkt+=","; } } wkt+=")"; var polygon = new OpenLayers.Feature.Vector( OpenLayers.Geometry.fromWKT(wkt) ); vectors.addFeatures([polygon]); }
其中的vectors其实就是一个矢量图层
vectors = new OpenLayers.Layer.Vector("ClientVectorLayer");
以上画区域是通过构造一个polygon,然后加入到食量图层中就完了。points当然是一个点对象数组了
其实很多例子都可以从Openlayers的官网上找到,经常去看看 “http://openlayers.org/dev/examples/”