如何从我的Gmap.NET获取位置信息?

时间:2014-08-22 12:53:11

标签: c# google-maps-markers gmap.net

当我点击gmap.NET上的某个地方时,我正在尝试获取地址信息,例如国家/地区,城市,地址等。 我搜索得足够多,但我找到的唯一解决方案是Location information where mouse click on the map GMap.net。 我正在使用的代码是:

    private void Form1_Load(object sender, EventArgs e)
        {
            // Initialize map:
            gmap.MapProvider = GMap.NET.MapProviders.GoogleMapProvider.Instance;
            GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
            gmap.Position = new PointLatLng(37.9667, 23.7167);

            gmap.MouseClick += new MouseEventHandler(map_MouseClick);


        }

private void map_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            double lat = 0.0;
            double lng= 0.0;
            if (e.Button == MouseButtons.Left)
            {
                lat = gmap.FromLocalToLatLng(e.X, e.Y).Lat;
                lng = gmap.FromLocalToLatLng(e.X, e.Y).Lng;
                //ajout des overlay
                overlayOne = new GMapOverlay(gmap, "OverlayOne");
                //ajout de Markers
                overlayOne.Markers.Add(new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen(new PointLatLng(lat, lng)));
                //ajout de overlay à la map
                gmap.Overlays.Add(overlayOne);
                List<Placemark> plc = null;
                var st = GMapProviders.GoogleMap.GetPlacemarks(new PointLatLng(54.6961334816182, 25.2985095977782), 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);
                        }
                    }
                }
            }

        }

出现的错误是 当前上下文中不存在名称'GMapProviders'

我正在尝试理解代码,但我不能。我是c#的初学程序员,当我尝试将代码复制/粘贴到我的代码中时,在map_MouseClick方法中的GMapProviders中存在错误。 有任何人可以帮助我或者可以将代码交给我。 感谢名单。

1 个答案:

答案 0 :(得分:1)

错误“名称'GMapProviders'在当前上下文中不存在”意味着它无法识别“GMapProviders”。确保您已将GMap的引用添加到项目中。您可以通过右键单击项目下的References文件夹并选择“Add Reference ...”然后浏览到“GMap.NET.Core.dll”和“Gmap.NET.Windows.Forms.dll”的位置来执行此操作。 “并添加它们。有关如何添加引用的MSDN文档,请参阅here。您还必须确保在.cs文件的顶部有一个using语句。

using GMap.NET.MapProviders;

以下是您对代码的其他部分可能需要的其他GMAP语句:

using GMap.NET;
using GMap.NET.WindowsForms;
using GMap.NET.WindowsForms.Markers;
using GMap.NET.WindowsForms.ToolTips;