gmap c#指向lat长到屏幕位置/位置

时间:2013-07-16 07:40:51

标签: c# google-maps location latitude-longitude screen-positioning

我在c#中使用GMap。当我点击地图时,我想要从我点击的位置获取屏幕上的位置。 我有一个名为myMap的地图控制器。当我点击地图时,会触发一个名为myMap_Click(对象发送者,MouseEventArgs e)的事件。如果我在e.X的位置放置一个对象,在我的情况下是一个自定义表单,e.Y它不会放在我点击屏幕的位置。

我的目标是在我点击地图时显示一个表单。如果我平移地图或缩放,我不在乎它是否遵循坐标。现在我只想在我点击的位置上自定义表单。

点击地图铃声后如何获取屏幕位置?

问候!

2 个答案:

答案 0 :(得分:1)

实际上非常简单!

private void myMap_Click(object sender, MouseEventArgs e)
{
    using (Form customForm = new Form())
    {
        customForm.StartPosition = FormStartPosition.Manual;
        customForm.DesktopLocation = MainMap.PointToScreen(e.Location);
        customForm.ShowDialog();
    }
}        

显然将“Form customForm”部分替换为您的等效部分。

答案 1 :(得分:0)

你也可以使用它

gMapControl1.MouseClick += new MouseEventHandler(map_mouseCLick);

private void map_mouseCLick(object sender, MouseEventArgs e) {
        if (e.Button == MouseButtons.Left) {
            var point = gMapControl1.FromLocalToLatLng(e.X, e.Y);
            double lat = point.Lat;
            double lon = point.Lng;
            //this the the values of latitude in double when you click 
            double newPointLat = lat;
            //this the the values of longitude in double when you click 
            double newPointLong = lon;
        }
    }