开发者

Calculate the initial best center AND best initial zoom depending on a list of location

Dear all. I'm pretty new in coding with location, so be nice.

I have a list of location (lat & lng), that could be really anywhere (ie : all in the same city ; one in bangladesh and one in paris...).

When initializing google map, I would like to center on the barycentre on these l开发者_Go百科ocation.

So this is my first question : How to calculate a barycentre with location object

Then, I would also like the initial map do display all the location (markers). So this is a problem of zoom, and is my second question : How to calculate the zoom in a google map so that all the markers on the map are displayed

I hope I've been clear. Also, take note that I was meaning barycentre with all points coefed to 1.

Best regards.


To zoom to include a set of results:

var locations = new google.maps.LatLngBounds();
...
function zoomToViewports(locations) {
  var bounds = new google.maps.LatLngBounds();

  for (var i in locations) {
    bounds.union(locations[i].geometry.viewport);
  }
  map.fitBounds(bounds);
}

Having done that, the barycentre is in the middle of the screen, so if you actually need it's value it's easily calculated [(max(lat)-min(lat)/2,(max(lng)-min(lng)/2]

HTH?

You are welcome to lift the JS from this page on my website, which does what you describe

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜