欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WEBGIS使用OpenLayers3中Interaction绘制长方形和正方形教程

程序员文章站 2022-03-13 09:25:11
//绘制长方形 function drawrectangle() { //设置maxpoints及geometryfunction var maxpoints, ge...


//绘制长方形
function drawrectangle() {
//设置maxpoints及geometryfunction
var maxpoints, geometryfunction;
maxpoints = 2;
geometryfunction = function (coordinates, geometry) {
if (!geometry) { //!geometry 意思是如果没有geometry则...
geometry = new ol.geom.polygon();
}
//设置起始点及终止点
var start = coordinates[0];
var end = coordinates[1];
geometry.setcoordinates([
[start, [start[0], end[1]], end, [end[0], start[1]], start] //特别注意,长方形终止点与起始点重合
]);
return geometry;
};
//新建source和layer
var source = new ol.source.vector({
wrapx: false,
});
var layer = new ol.layer.vector({
source: source
});
//新建绘制长方形interaction
var drawrectangle = new ol.interaction.draw({
source: source,
type: "linestring",
geometryfunction: geometryfunction,
maxpoints: maxpoints
});
//将layer和interaction添加到地图中
map.addlayer(layer);
map.addinteraction(drawrectangle);
}

//绘制正方形 ***成功
function addsquare() {
//新建source和layer
var source = new ol.source.vector({
wrapx: false,
});
var layer = new ol.layer.vector({
source: source
});
//设置maxpoints及geometryfunction
var maxpoints, geometryfunction;
geometryfunction = ol.interaction.draw.createregularpolygon(4);
//新建绘制正方形interaction
var drawsquare = new ol.interaction.draw({
source: source,
type: "circle",
geometryfunction: geometryfunction,
//maxpoints: maxpoints
});
//将layer和interaction添加到地图上
map.addlayer(layer);
map.addinteraction(drawsquare);
}