Debido a algunas restricciones, a las que no entraré, me he visto en la necesidad de implementar una panorámica personalizada en mi aplicación.
La referencia de la API de ArcGIS sugiere utilizar los siguientes métodos:
IScreenDisplay2.PanStart(IPoint start) // Starts a pan
IScreenDisplay2.PanMoveTo(IPoint moveTo) // Moves to a point
IScreenDisplay2.PanEnd() // Ends the pan
Cada uno de estos métodos se llama en los siguientes controladores de eventos (respectivamente):
IMapControl4.OnMouseDown // Call PanStart()
IMapControl4.OnMouseMove // Call PanMoveTo()
IMapControl4.OnMouseUp // Call PanEnd()
Todo eso funciona bien, los eventos se manejan, comienza el panorama, todos están felices.
-pero-
Donde la pantalla realmente se desplaza no es donde he arrastrado el cursor. El mapa se desliza en un patrón algo determinista, pero parece que no puedo entender cómo compensar lo que está haciendo la API. No he podido encontrar ninguna documentación esclarecedora.
¿Alguien tiene experiencia con esta parte de la API? ¡Un código de muestra o documentación sería genial!
DeviceFrame
no cambia en absoluto cuando se desplaza. Sin embargo, eso es de esperar, ¿correcto? El marco del dispositivo tiene el tamaño del marco en las coordenadas del dispositivo (píxeles)
VisibleBoundsUpdated
llamar dos veces. Me gustaría utilizar TrackPan()
, pero tengo que seguir los eventos del ratón mango durante la exploración y que están suprimida durante unaTrackPan