Frage

Ich habe scheint einen Fehler zu haben, schlagen oder ich habe etwas übersehen.

ich einige Code geschrieben, der auf einer Openlayers Vector Schicht durch alle Vektor-Features aufzählt - zu überprüfen, ob die Maus innerhalb eines Vektors Funktion ist -. Wenn ja, dann es einige Informationen zeigt auf dem Merkmal basiert

Ich hatte meine eigenen Methoden zu schreiben, dies zu tun, weil der vorhandenen Openlayers Controls (wählen usw.) zu stoppen, nachdem eine Funktion unter der Maus zu finden, und ich die Möglichkeit, mehr Funktionen übereinander gestapelt werden.

Mein Problem ist, dass die .containsPoint Methode coords aus der Zeit vor einer ‚pan‘ zu sein scheint. Nach dem Zoomen scheint in oder aus der Geometrie an der richtigen Stelle zu sein und .containsPoint ist richtig funktioniert, wenn ich die Maus über die Karte winke.

Muss ich etwas tun müssen, nachdem die Karte verrissen wurde etwas (Feature Geometrie)

aktualisieren
War es hilfreich?

Lösung

Ich weiß, diese Frage hatte fast ist es erster Geburtstag, und es kann nicht mehr gültig sein, aber ich werde einen Schuss auf sich sowieso zu beantworten.

OpenLayers.Control.DragPan macht einen Aufruf an die Karte, wenn Sie Panning sind fertig. Wenn Sie die OpenLayers.Map Schwenkfunktion überprüfen, werden Sie diesen Kommentar sehen innen:

// only call setCenter if not dragging or there has been a change

Die folgende Logik in der Funktion spiegelt diesen Kommentar.

Also ja, jedes Mal wenn Sie fertig sind Panning Sie so etwas wie tun müssen:

dragpan.handler.up = function(evt)
{
    dx = dragpan.handler.last.x - evt.x;
    dy = dragpan.handler.last.y - evt.y;
    var centerPx = map.getViewPortPxFromLonLat(map.getCenter());
    var newCenterPx = centerPx.add(dx, dy);
    var newCenterLonLat = map.getLonLatFromViewPortPx(newCenterPx);
    map.setCenter(map.getCenter() + dragpan.handler.xy);
}

... und Dinge sollten Sie auf magische Weise arbeiten.

Andere Tipps

Ohne ein Beispielcode-Snippet es sehr schwierig ist, diese zu beantworten. Openlayers ist in der Lage, mehrere Objekte auf einem Mausklick auswählen. Haben Sie versucht, 2.8 bereits Openlayers?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top