GMAP.NET 怎么把接收到的坐标转换为地图上的marker?
我用的c#winform,现在已经可以做到在地图上点一个marker,然后把这个点的坐标显示在textbox里面。现在要做的是反过来,吧textbox里的坐标,转换成地图...
我用的c# winform,现在已经可以做到在地图上点一个marker,然后把这个点的坐标显示在textbox里面。现在要做的是反过来,吧textbox里的坐标,转换成地图上的marker。
marker到坐标我用的是FromLocalToLatLng,可以工作。 所以我的想法是,坐标到marker就用FromLatLngToLocal。 可是它后要求的是FromLatLngToLocal(PointLatLng point),我怎么把坐标转换成那个“point”? 或者我的方法错了,该用什么方法? 展开
marker到坐标我用的是FromLocalToLatLng,可以工作。 所以我的想法是,坐标到marker就用FromLatLngToLocal。 可是它后要求的是FromLatLngToLocal(PointLatLng point),我怎么把坐标转换成那个“point”? 或者我的方法错了,该用什么方法? 展开
展开全部
1)从两个textbox分别输入的经度和纬度,则可以按以下方式转换
double lat = double.Parse(txtLatitude.Text);
double lng = double.Parse(txtLongitude.Text);
//得到Marker点的PointLatLng
PointLatLng p = new PointLatLng(lat, lng);
2)从两个textbox分别输入的相对于地图控件左上角的屏幕坐标(像素),则可以按以下方式转换
int x = int.Parse(txtPosX.Text);
int y = int.Parse(txtPosY.Text);
//得到Marker点的PointLatLng
PointLatLng p = mapControl.FromLocalToLatLng(x, y);
3)假设地图上有一个marker
//获得marker的地理坐标
PointLatLng p = marker.Positon;
//将地理坐标转换成屏幕坐标
GPoint gp = mapControl.FromLatLngToLocal(marker.Position);
long x = gp.X; //marker点先对与地图控件左上角的x
long y = gp.Y; //marker点先对与地图控件左上角的y
追问
你好谢谢你的回答!我用的是第一种。请问我还需不需要FromLatLngToLocal?
追答
FromLatLngToLocal是将标记点的地理坐标(经度、纬度)转化成相对于地图控件左上角的屏幕坐标(像素)。
对一个标记点,通常是通过地理坐标来确定它在地图上的位置。也就是说,地理坐标用得最多;
如果你想得屏幕坐标,那就得用mapContorl.FromLatLngToLocal方法来转化了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询