admin管理员组文章数量:1589753
<input type="button" class="Interaction" value="drawRectangle" οnclick="drawRectangle()" />
<input type="button" class="Interaction" value="addSquare" οnclick="addSquare()" />
//绘制长方形
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);
}
本文标签: 正方形长方形WebGISInteraction
版权声明:本文标题:WEBGIS使用OpenLayers3中Interaction绘制长方形和正方形 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728076809a1144584.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论