0 0

openlayer 的编辑工具控件 画完图像 如何取得图像的坐标25

  最近刚了解openlayers  照着网上的教程做了个例子 其中用到了Vector
vlayer = new OpenLayers.Layer.Vector( "Editable" );
map.addLayer(vlayer);
map.addControl(new OpenLayers.Control.EditingToolbar(vlayer));

加上上面代码后确实页面上有了几个可以画多边形或是点和线的控件  现在我画完图形后想知道如何获得该图形的坐标数据 如三角形就获得三个点的坐标 多边形就获得多个点的坐标  谁对这方面比较熟悉 请解答下 谢谢。
2012年2月02日 17:14

1个答案 按时间排序 按投票排序

0 0

在你使用画图工具画图的时候,画的图会作为你的vlayer的一个feature,这时你只要调用vlayer.features 可以得到你的vlayer上的所有feature数组。这个feature根据提供的api文档,他是一个OpenLayers.Feature.Vector类型,转到该类型下会看到他有一个geometry属性,该属性返回一个OpenLayers.Geometry对象,该对象下有一个getVertices()方法就是返回你画的图形,点,线的坐标。
根据你提供的代码获取坐标的代码为:

var features[] = vlayer.features;
for(var i = 0 ; i < features.length; i++){
var geom = features[i].geometry;
var lonlats = geom.getVertices();
alert(lonlats);
}

另外 lonlats 是一个point x,y point x2,y2 类似这样的东西,你可以用js的eval方法将它转换成一个对象就变成类似x1:y1,x2:y2这样的字符串了

2013年9月17日 10:57

相关推荐

Global site tag (gtag.js) - Google Analytics