我有一个包含Google Map的ASP.NET网站。我正在使用由一些聪明且乐于助人的人制作的GoogleMapForASPNet框架。
Anywho,我在插入两个引脚后将地图居中有问题。
基本上,我正在计算引脚的中点并将其设置为地图的中心点。
以下是我的代码:
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;
它工作了一半,但不正确。就像在,当我提供不同的Pins时,它并不真正使地图居中,但足够接近。或者有时,另一个引脚将离开地图但只有一英寸,这意味着地图根本不居中。
变焦是静态的,因为引脚总是靠近,所以我不需要让它动态化。
非常非常感谢任何帮助。
谢谢。
答案 0 :(得分:0)
Google Maps API有一个对象:google.maps.LatLngBounds
只需创建一个LatLngBounds
对象,使用extend()
方法将引脚坐标添加到其中,然后使用地图panToBounds(yourBounds)
方法即可完成设置!