当我点击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中存在错误。 有任何人可以帮助我或者可以将代码交给我。 感谢名单。
答案 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;