Para dibujar polígonos en OpenLayers 2 podemos usar lo siguiente:
function drawEnd(){
...
}
function putPoint(){
...
}
function sketchModified(){
...
}
function cancel(){
...
}
var callBackParams = {
"done": drawEnd,
"point": putPoint,
"modify": sketchModified,
"cancel": cancel
}
var drawCrtl = new OpenLayers.Control.DrawFeature(layer, OpenLayers.Handler.Polygon, {callbacks: callBackParams});
map.addControls([drawCrtl]);
drawCrtl.activate();
Cuando ponemos el punto para dibujar el polígono, la llamada del sistema putPoint function
. Cuando el ratón se mueve sobre el mapa, llama sketchModified function
. Quiero utilizar estos dos eventos en OpenLayers 3. Defino mi capa como sigue:
var source = new ol.source.Vector({wrapX: false});
var vector = new ol.layer.Vector({
source: source
});
draw = new ol.interaction.Draw({
source: source,
type: 'Polygon'
});
drawStart = function(){
console.log("Salam Bar Mahdi");
}
drawEnd = function(){
console.log("Ya Mahdi");
}
draw.on('drawstart', drawStart);
draw.on('drawend', drawEnd);
var map = new ol.Map({
interactions: ol.interaction.defaults().extend([select, modify, draw]),
target: 'map',
layers: [
new ol.layer.Tile({
title: "Global Imagery",
source: new ol.source.TileWMS({
url: 'http://localhost:8080/geoserver/world/wms?service=WMS',
params: {LAYERS: 'world:worldRaster', VERSION: '1.1.1'}
})
}),
vector
],
view: new ol.View({
projection: 'EPSG:4326',
center: [0, 0],
zoom: 4
})
});
Pero en Openlayers 3 sólo vi el evento drawEnd y DrawStart.
¿Cómo puedo hacerlo?