根据引脚定位Google地图

时间:2011-12-30 14:41:09

标签: google-maps

我有一个包含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时,它并不真正使地图居中,但足够接近。或者有时,另一个引脚将离开地图但只有一英寸,这意味着地图根本不居中。

变焦是静态的,因为引脚总是靠近,所以我不需要让它动态化。

非常非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

Google Maps API有一个对象:google.maps.LatLngBounds

只需创建一个LatLngBounds对象,使用extend()方法将引脚坐标添加到其中,然后使用地图panToBounds(yourBounds)方法即可完成设置!