Ich verwende eine ol.interaction.Draw
, um neue Features auf eine Karte zu zeichnen, aber es gibt auch bereits vorhandene Funktionen auf der Karte. Ich möchte, dass der Benutzer keine neue Funktion platzieren kann, wenn sich die Maus über einer vorhandenen Funktion befindet.ol.interaction.Draw Zustand bei Mausbewegung?
Für jetzt verwende ich eine condition
auf die Draw-Interaktion, die false zurückgibt, wenn es auf ein Pixel gesetzt wird, wo es bereits ein Feature gibt. Aber wenn man die Maus nur über diese Pixel bewegt, sieht das so aus, als ob der Benutzer dort einen Marker platzieren könnte. Gibt es so etwas wie condition
, das bei jeder Mausbewegung nicht nur auf einen Klick überprüft wird?
Update: mein aktueller Zustand ist:
condition: function(e) {
var isFirstOne = true;
var feature = map.forEachFeatureAtPixel(e.pixel, function(feature) {
var n = feature.get('name');
// if n is undefined, feature is the current drawing one
if (!!n) return feature;
});
return (!feature);
}
können Sie den Code für die 'condition' Sie verwenden? –
@HichamZouarhi: Ich aktualisierte die Frage – levu
Sie können den Stil der Zeicheninteraktion innerhalb Ihrer Bedingung ändern, jedoch konnte ich keine vordefinierte Funktion finden, um das in OL3 zu tun –