Karena beberapa kendala, yang tidak akan saya bahas, saya merasa perlu menerapkan custom panning di aplikasi saya.
Referensi ArcGIS API menyarankan menggunakan metode berikut:
IScreenDisplay2.PanStart(IPoint start) // Starts a pan
IScreenDisplay2.PanMoveTo(IPoint moveTo) // Moves to a point
IScreenDisplay2.PanEnd() // Ends the pan
Masing-masing metode ini disebut dalam event handler berikut (masing-masing):
IMapControl4.OnMouseDown // Call PanStart()
IMapControl4.OnMouseMove // Call PanMoveTo()
IMapControl4.OnMouseUp // Call PanEnd()
Jadi semua itu bekerja dengan baik, acara ditangani, panning dimulai, semua orang senang.
-tapi-
Tempat layar sebenarnya bukan tempat saya menyeret kursor saya. Peta tersebut bergeser dalam pola yang agak deterministik, tetapi saya tidak bisa menemukan cara untuk mengkompensasi apa yang dilakukan API. Saya tidak dapat menemukan dokumentasi yang mencerahkan.
Adakah yang punya pengalaman dengan bagian API ini? Kode contoh atau dokumentasi akan sangat bagus!
DeviceFrame
berubah sama sekali saat panning. Itu yang diharapkan, benar? Bingkai perangkat hanya ukuran bingkai dalam koordinat perangkat (piksel)
VisibleBoundsUpdated
menelepon dua kali. Saya akan menggunakan TrackPan()
tetapi saya harus terus menangani acara mouse saat panning dan mereka ditekan selama aTrackPan