J'utilise openlayers 3 pour créer une application Web qui permet à l'utilisateur de dessiner des entités LineString dans la carte. c'est le code:
var raster = new ol.layer.Tile({
source: new ol.source.MapQuest({ layer: 'sat' })
});
var source = new ol.source.Vector();
var vector = new ol.layer.Vector({
name: 'my_vectorlayer',
source: source,
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#ffcc33',
width: 5
})
})
});
var map = new ol.Map({
layers: [raster, vector],
target: document.getElementById('map'),
view: new ol.View2D({
center: [-11000000, 4600000],
zoom: 4
})
});
var draw;
function addInteraction() {
map.removeInteraction(singleClick);
draw = new ol.interaction.Draw({
source: source,
type: ("LineString")
});
map.addInteraction(draw);
}
par le code précédent, je peux ajouter des lignes à la carte. les lignes tracées seront ajoutées au vector
calque. Je ne veux pas quand l'utilisateur sélectionne l'une des lignes qu'il dessine peut les supprimer. c'est le code de sélection de la fonctionnalité:
var singleClick = new ol.interaction.Select();
function addSelect() {
map.removeInteraction(draw);
map.addInteraction(singleClick);
}
et c'est un travail très volontaire,
Je veux juste que l'utilisateur puisse supprimer le LineString sélectionné ...
openlayers
Ahmed Abd Elmoniem
la source
la source
Réponses:
Oui, vous pouvez supprimer la fonction sélectionnée.
Modifiez ensuite la fonction sélectionnée comme suit:
Appelez ensuite cette fonction sur le bouton SUPPRIMER cliquez
Avec ce code, vous pouvez supprimer toute fonctionnalité sélectionnée. S'il s'agit d'une ligne, d'un point, d'un polygone, etc.
la source
feature.setId(id)
et continuerfeature.getId()
Premièrement, si vous pouviez me donner plus de détails, je pourrais mieux vous aider à répondre à votre question. Je ne pense pas comprendre parfaitement ce que vous demandez. Voici quelques possibilités.
1) La solution simple mais limitée consiste simplement à utiliser un sélecteur de couche. Quelque chose comme ça . En supposant que vous utilisez un wms comme un géoserveur, vous pouvez utiliser des vues de type SQL pour créer un tas de couches que vous pouvez ajouter ou supprimer. Si vous devez faire quelque chose de simple comme ça, je peux modifier la réponse pour fournir plus de détails.
2) Je ne l' ai pas fait cela avant, mais cela pourrait être quelque chose à regarder dans . Fondamentalement, vous utiliserez ol.format.wfs pour sélectionner et supprimer des fonctionnalités.
la source