I have a ASP.NET website which contains a Google Map. I am using the GoogleMapForASPNet framework made by some clever and helpful individual.
Anywho, I have a problem with centering the map after inserting two pins.
Basically, I am calculating the middle point of the pins and setting that as the Center Point of the map.
Below is my code:
GooglePoint newPoint = new GooglePoint();
double newLat = 0;
double newLong = 0;
if (googlePointA.Latitude > googlePointB.Latitude)
{
newLat = googlePointA.Latitude - googlePointB.Latitude;
newPoint.Latitude = googlePointA.Latitude - newLat;
}
else
{
newLat = googlePointB.Latitude - googlePointA.Latitude;
newPoint.Latitude = googlePointB.Latitude + newLat;
}
if (googlePointA.Longitude > googlePointB.Longitude)
{
newLong = googlePointA.Longitude - googlePointB.Longitude;
newPoint.Longitude = googlePointA.Longitude - newLong;
}
else
{
newLong = googlePointB.Longitude - googlePointA.Longitude;
newPoint.Longitude = googlePointB.Longitude + newLong;
}
GoogleMapForASPNet1.GoogleMapObject.CenterPoint = newPoint;
GoogleMapForASPNet1.GoogleMapObject.ZoomLevel = 8;
It works half and half, but not properly. As in, when I feed different Pins, it doesn’t really center the map, but close enough. Or sometimes, the other pin will be off the map but only an inch, which means the map isn’t centered at all.
The zoom is static because the pins will always be close by, so there’s no need for me to make it dynamic.
Any help is extremely, extremely, extremely appreciated.
Thank you.
The Google Maps API has an object to do that: google.maps.LatLngBounds
Just create a
LatLngBoundsobject, add your pin coordinates to it with theextend()method, then use the mappanToBounds(yourBounds)method and you’re all set!