Javascript 计算多个Lat/Long的中心点
我正在使用谷歌地图显示多个横向/纵向点 但是GoogleMapJavaScript代码有一个代码片段来跟踪可用lat/long的lat/long中心Javascript 计算多个Lat/Long的中心点,javascript,google-maps,latitude-longitude,Javascript,Google Maps,Latitude Longitude,我正在使用谷歌地图显示多个横向/纵向点 但是GoogleMapJavaScript代码有一个代码片段来跟踪可用lat/long的lat/long中心 <script type="text/javascript"> var locations = JSON.parse('<?php echo json_encode($data);?>'); //alert (locations); var map = new google.maps.Map(document
<script type="text/javascript">
var locations = JSON.parse('<?php echo json_encode($data);?>'); //alert (locations);
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][2], locations[i][3]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][1]);
infowindow.open(map, marker);
}
})(marker, i));
}
</script>
需要一个lat/long对,该对可能是要显示的多个lat/long的中心点
如何做到这一点?您应该使用函数map.getBounds()获取添加标记的边界 它返回一个对象,您可以在该对象上获取中心绑定。getCenter()
请参见您应该使用函数map.getBounds()获取添加标记的边界 它返回一个对象,您可以在该对象上获取中心绑定。getCenter()
请参见此操作。有关详细信息,请参阅和的文档:
<script type="text/javascript">
var locations = JSON.parse('<?php echo json_encode($data);?>');//alert (locations);
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
var bounds = new google.maps.LatLngBounds();
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][2],locations[i][3]),
map: map
});
bounds.extend(marker.getPosition());
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][1]);
infowindow.open(map, marker);
}
})(marker, i));
}
map.fitBounds(bounds);
</script>
这很有效。有关详细信息,请参阅和的文档:
<script type="text/javascript">
var locations = JSON.parse('<?php echo json_encode($data);?>');//alert (locations);
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
var bounds = new google.maps.LatLngBounds();
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][2],locations[i][3]),
map: map
});
bounds.extend(marker.getPosition());
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][1]);
infowindow.open(map, marker);
}
})(marker, i));
}
map.fitBounds(bounds);
</script>
如果您横向/纵向定义了不规则多边形,则没有正式定义的“中心”。请看:它将中心表示为“正多边形中与每个顶点等距的点”。稍后您将看到,它说它可以有一个质心
。这是一个7步的过程显然,wiki在这方面有一些好东西()(平均纬度,平均长度)还不够好吗?两周前提出了完全相同的问题:如果你纬度/长度定义了一个不规则多边形,那么就没有官方定义的“中心”。请看:它将中心表示为“正多边形中与每个顶点等距的点”。稍后您将看到,它说它可以有一个质心
。这是一个7步的过程显然,wiki在这方面有一些好东西()是(平均纬度,平均长度)不够好吗?两周前也有人问过同样的问题: