首页 / 浏览问题 / 组件 / 问题详情
如何根据屏幕坐标,在缩放地图后始终确定窗体的位置
yangkun  (19分)  才疏学浅
8月14日, 2017
根据鼠标点击获取屏幕坐标,确定弹出窗体的位置,同时将该屏幕坐标转化为地图坐标,缩放或者移动地图,如何让窗体的位置随着地图的移动而移动。我用了Map.PixelToMap和Map.MapToPixel两个坐标转换的方法,窗体的位置也会移动,但是有较大误差,请问我的思路是否对?有什么方法吗?

1个回答

您好,您的需求中随地图移动而移动,地图缩放移动之后,那么窗体出现的目标点是怎么确定的?地图中心点?还是之前的那一个点?
胡林  (5,985分)  登峰造极
8月14日, 2017
先由鼠标点击获取的屏幕坐标确定窗体位置,并将该屏幕坐标转为地图坐标,设为全局变量存起来。当地图移动之后,再将之前存的地图坐标转为屏幕坐标,将这个屏幕坐标再设定为窗体的位置。但是现在窗体也移动,但是窗体位置跟那个地图坐标有较大误差,按道理说窗体我位置应该随着地图上那个点移动而移动,但现在发生了误差,想请问您一下怎么回事?
我试了一下,确实有一点偏移,你看一下偏移量是不是固定的,是的话就自己把偏移量计算出来,然后设置窗体Location的时候把偏移量算进去
不是固定的,我看了下百度地图,在百度地图上点一个要素,弹出信息框,缩放地图信息框也随之移动,咱们这个误差这么大怎么回事呢?怎么才能解决呢?
你是新建了的一个Form来显示相关信息,然后通过窗体的Location来确定窗体的位置是吧,我刚刚看了,方法计算出来的坐标是没问题的,是窗体显示的时候,左上角的坐标与计算出来的坐标出现了偏移,这是窗体之间的问题

我这边的窗体偏移量是固定的,我自己在代码做了偏移之后,窗体就显示在我鼠标点击的位置了,代码如下图;

...