GMAP.NET 怎么把接收到的坐标转换为地图上的marker?

我用的c#winform,现在已经可以做到在地图上点一个marker,然后把这个点的坐标显示在textbox里面。现在要做的是反过来,吧textbox里的坐标,转换成地图... 我用的c# winform,现在已经可以做到在地图上点一个marker,然后把这个点的坐标显示在textbox里面。现在要做的是反过来,吧textbox里的坐标,转换成地图上的marker。

marker到坐标我用的是FromLocalToLatLng,可以工作。 所以我的想法是,坐标到marker就用FromLatLngToLocal。 可是它后要求的是FromLatLngToLocal(PointLatLng point),我怎么把坐标转换成那个“point”? 或者我的方法错了,该用什么方法?
展开
 我来答
freeeeeewind
推荐于2017-09-19 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1354万
展开全部

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方法来转化了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式