google maps api v3的fitbounds并不以我的折线为中心

时间:2011-12-21 10:04:49

标签: google-maps-api-3 marker polyline fitbounds google-polyline

我希望能够缩放我网站的所有折线。

另外,我想为每个新的坐标对添加标记。我已经看过很多关于多个标记和多个plygons的例子,但从来没有用于折线,我无法解决这个问题......

我见过一些非常有用的网页,例如:http://salman-w.blogspot.com/2009/03/zoom-to-fit-all-markers-polylines-or.html

但他们中的大多数人事先都会假设某种知识,而我不太了解。

这是我的代码:

<script type="text/javascript">

  function initialize() {
  var myLatLng = new google.maps.LatLng(45.397, 5.644);
  var centerLatLng = new google.maps.LatLng(35.71,-1.905);

  var myOptions = {
    zoom: 5,
    center: centerLatLng,
    scrollwheel: false,
    mapTypeControl: false,
    mapTypeId: google.maps.MapTypeId.SATELLITE
  };

  var map = new google.maps.Map(document.getElementById("map_canvas"),
      myOptions);

  var flightPlanCoordinates = [
    new google.maps.LatLng(45.397, 5.644),
    new google.maps.LatLng(28.713383,-17.905781),
    new google.maps.LatLng(20.713383,-19.905781),
    new google.maps.LatLng(25.713383,-29.905781),

  ];

  var flightPath = new google.maps.Polyline({
    path: flightPlanCoordinates,
    strokeColor: "#dddd00",
    strokeOpacity: 1.0,
    strokeWeight: 3
  });

  flightPath.setMap(map);

}
</script>

先谢谢,我是googles API和本网站的新手。

1 个答案:

答案 0 :(得分:10)

尝试将点的位置添加到bounds对象,然后使用fitBounds,如下所示:

var bounds = new google.maps.LatLngBounds();

var point1 = new google.maps.LatLng(45.397, 5.644);
bounds.extend(point1);
var point2 = new google.maps.LatLng(28.713383,-17.905781);
bounds.extend(point2);
var point3 = new google.maps.LatLng(20.713383,-19.905781);
bounds.extend(point3);
var point4 = new google.maps.LatLng(25.713383,-29.905781);
bounds.extend(point4);

map.fitBounds(bounds);