Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
15
ultraGeographicMap Zoom In/Out
posted

I display in a winform the ultraGeographicMap , I would like to know if I can simulate the event MouseWheel by another event MouseClick for example to zoom In/Out.

Thank you in advance for your assistance

 

Parents
No Data
Reply
  • 12480
    Verified Answer
    Offline posted

    Hi Haris,

    Yes, you can do this. You can zoom the mouse in or out in response to a mouse click with the following logic

    // when handling mouse click:
    // get a point representing location where mouse was clicked
    // check if left or right mouse button was clicked
    // call ZoomMapIn(mouseLocation) for left mouse click
    // or 
    // call ZoomMapOut(mouseLocation) for right mouse click
     
    void ZoomMapIn(Point center)
    {
        // might need to adjust delta if zooming in is too fast
        ZoomMap(Point center, 0.05) 
    }
     
    void ZoomMapOut(Point center)
    {
        // might need to adjust delta if zooming out is too fast
        ZoomMap(Point center, -0.05)  
    }
     
    void ZoomMap(Point center, double delta)
    { 
        double scale = 1.0 - MathUtil.Clamp(delta, -0.5, 0.5);
        double left = center.X - scale * (center.X - this.GeoMap.WindowRect.Left);
        double bottom = center.Y + scale * (this.GeoMap.WindowRect.Bottom - center.Y);
        double right = center.X + scale * (this.GeoMap.WindowRect.Right - center.X);
        double top = center.Y - scale * (center.Y - this.GeoMap.WindowRect.Top);
     
        Rect window = new Rect(left, top, right - left, bottom - top);
         
        this.GeoMap.WindowRect = window;
    }

    Please try this out and let me know whether it works for you.

Children