gmap c#将lat-long指向屏幕位置/位置
本文关键字:位置 屏幕 lat-long gmap | 更新日期: 2023-09-27 18:22:35
我在c#中使用GMap。当我点击地图时,我想从我点击的地方得到屏幕上的位置。我有一个名为myMap的地图控制器。当我点击地图时,会触发一个名为myMap_click(对象发送器,MouseEventArgs e)的事件。如果我把一个对象,在我的情况下是一个自定义表单,放在e.X,e.Y的位置,它不会放在我点击屏幕的地方。
我的目标是在我点击地图的地方展开表格。如果我平移或缩放地图,我不在乎它是否遵循坐标。现在我只想在我点击的位置上创建一个自定义表单。
当我点击地图图标时,如何获取屏幕位置?
问候!
其实很简单!
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"部分替换为等效部分。
你也可以使用
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;
}
}