аппликации для карт Google api v3 не центрируются на моих полилиниях - PullRequest
1 голос
/ 21 декабря 2011

Я хочу иметь возможность масштабировать все мои полилинии для своего сайта.

Кроме того, я хотел бы добавить маркеры к каждой из этих новых пар координат. Я видел много примеров для нескольких маркеров и нескольких плигонов, но никогда не для полилиний, и я не могу обойти эту проблему ...

Я видел несколько очень полезных страниц, таких как эта: 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>

Заранее спасибо, я очень плохо знаком с API Google и с этим сайтом.

1 Ответ

10 голосов
/ 31 марта 2012

Попробуйте добавить позиции ваших точек в объект 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);
...