Reputation: 880
I'm working on Win Forms application along with GMap.net(a library that enables us to use Google Maps in Win Forms Application). Coming straight to the point, I be able to get the coordinates i.e (Latitude and Longitude) where my mouse click (left click).
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;
}
}
I did not find a way to get the location of that place i.e Country Name, city name etc.
I've searched the forum of Google maps but i did not find this issue answered.
Any
Upvotes: 8
Views: 18368
Reputation: 1
while using GMap.Net Libraries, coordinates are used for specific location using latitute and longitute. As question, even place name can be used to locate the position.
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()
Remove code: .Position = New GMap.NET.PointLatLng(latitute, longitute) for using .SetPositionByKeywords("Nepal")
Upvotes: 0
Reputation: 61
This will give you a list of the named places on the position you click on the map.
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);
}
}
}
}
Upvotes: 6