openlayers3测距
时间: 2023-07-25 18:14:02 浏览: 108
Openlayers实现距离面积测量
要在 OpenLayers 3 中实现测距功能,你需要使用 ol.interaction.Draw 和 ol.geom.LineString。以下是一个简单的示例:
```javascript
var source = new ol.source.Vector();
var draw = new ol.interaction.Draw({
source: source,
type: 'LineString'
});
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Vector({
source: source
})
],
controls: ol.control.defaults({
attribution: false,
zoom: false
}),
interactions: ol.interaction.defaults().extend([draw]),
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
draw.on('drawend', function(event) {
var lineString = event.feature.getGeometry();
var length = ol.Sphere.getLength(lineString);
alert('Length is ' + length);
});
```
在这个示例中,我们创建了一个 ol.interaction.Draw 对象,类型为 'LineString',并将其添加到地图的交互中。当用户开始绘制线时,我们可以捕获 'drawend' 事件并计算线的长度。最后,我们可以使用 alert() 方法将长度显示给用户。
值得注意的是,我们在创建 ol.Sphere.getLength() 时使用了 ol.Sphere。这是因为 OpenLayers 可以处理不同的地球模型,如 WGS84 和球形墨卡托投影。
阅读全文