8

我正在与 GMap.net(一个使我们能够在 Win Forms 应用程序中使用 Google 地图的库)一起开发 Win Forms 应用程序。直截了当,我能够获得鼠标单击(左键单击)的坐标,即(纬度和经度)。

 private void gm1_MouseDoubleClick(object sender, MouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Left)
        {
            double lat = gm1.FromLocalToLatLng(e.X, e.Y).Lat;
            double lng = gm1.FromLocalToLatLng(e.X, e.Y).Lng;
        }
    }

我没有找到一种方法来获取那个地方的位置,即国家名称、城市名称等。

我搜索了谷歌地图的论坛,但我没有找到这个问题的答案。

任何

4

2 回答 2

6

这将为您提供您在地图上单击的位置上的命名地点列表。

   private void map_MouseClick(object sender, MouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Left)
        {
            double lat = map.FromLocalToLatLng(e.X, e.Y).Lat;
            double lng = map.FromLocalToLatLng(e.X, e.Y).Lng;
        }

        List<Placemark> plc = null;
        var st = GMapProviders.GoogleMap.GetPlacemarks(map.FromLocalToLatLng(e.X, e.Y), out plc);
        if (st == GeoCoderStatusCode.G_GEO_SUCCESS && plc != null)
        {
            foreach (var pl in plc)
            {
                if (!string.IsNullOrEmpty(pl.PostalCodeNumber))
                {
                    Debug.WriteLine("Accuracy: " + pl.Accuracy + ", " + pl.Address + ", PostalCodeNumber: " + pl.PostalCodeNumber);
                }
            }
        }
    }
于 2014-04-03T02:13:33.780 回答
0

在使用 GMap.Net 库时,坐标用于使用纬度和经度的特定位置。作为问题,甚至可以使用地名来定位位置。

            GMapControl.MapProvider = MapProviders.GoogleTerrainMapProvider.Instance
            

            GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerAndCache
            With Me.GMapControl
                .Position = New GMap.NET.PointLatLng(latitute, longitute)
                .SetPositionByKeywords("Nepal")
                .Zoom = mp_zomlvl
                .ShowCenter = False
            End With
            GMapControl.Refresh()

删除代码:.Position = New GMap.NET.PointLatLng(latitute, longitute) 用于使用 .SetPositionByKeywords("Nepal")

于 2021-09-28T11:01:49.667 回答