Aufgrund einiger Einschränkungen, auf die ich nicht eingehen werde, musste ich ein benutzerdefiniertes Panning in meiner Anwendung implementieren.
In der ArcGIS-API-Referenz wird die Verwendung der folgenden Methoden vorgeschlagen:
IScreenDisplay2.PanStart(IPoint start) // Starts a pan
IScreenDisplay2.PanMoveTo(IPoint moveTo) // Moves to a point
IScreenDisplay2.PanEnd() // Ends the pan
Jede dieser Methoden wird in den folgenden Ereignishandlern aufgerufen:
IMapControl4.OnMouseDown // Call PanStart()
IMapControl4.OnMouseMove // Call PanMoveTo()
IMapControl4.OnMouseUp // Call PanEnd()
Das alles funktioniert also gut, die Ereignisse werden behandelt, das Schwenken beginnt, alle sind glücklich.
-aber-
Wo der Bildschirm tatsächlich schwenkt, habe ich meinen Cursor nicht gezogen. Die Karte gleitet in einem etwas deterministischen Muster herum, aber ich kann anscheinend nicht herausfinden, wie ich die Aktivitäten der API kompensieren kann. Ich konnte keine aufschlussreiche Dokumentation finden.
Hat jemand Erfahrung mit diesem Teil der API? Beispielcode oder Dokumentation wäre toll!
DeviceFrame
ändert sich beim Schwenken überhaupt nicht. Das ist aber zu erwarten, richtig? Der Geräterahmen ist nur die Größe des Rahmens in Gerätekoordinaten (Pixel)
VisibleBoundsUpdated
, zweimal anzurufen . Ich würde verwenden , TrackPan()
aber ich muss Griff Mausereignisse fortzusetzen , während Schwenken und sie werden während eines unterdrücktTrackPan