我一直在努力使用绑定我的多边形......当我只有标记时它似乎有效 我是一个完整的地图初学者,所以任何帮助将不胜感激! 我知道我正在预先编写硬编码的长度和纬度,但我不确定如何在以后更新它。我认为我的最后一行代码应该这样做?
function initialize() {
var projpoints = tempstr.split("|");
var mapDiv = document.getElementById('map-canvas');
var map = new google.maps.Map(mapDiv, {
center: new google.maps.LatLng(-26.6532808494364, 27.8769719868429 ),
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP});
var bounds = new google.maps.LatLngBounds();
var pt = [];
for (var j = 0; j < projpoints.length; j++) {
pt=[];
var latlongpoints=projpoints[j].split(",");
for (var i = 0; i < latlongpoints.length; i++) {
var lat = (latlongpoints[i].split(" "));
var latlng = new google.maps.LatLng(lat[1],lat[0]);
pt.push(latlng);
bounds.extend(latlng);
var shape = new google.maps.Polygon({
paths: pt,
strokeColor: '#000000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#808080',
fillOpacity: 0.35
});
shape.setMap(map);
}
map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds));
}
答案 0 :(得分:0)
除了执行bounds.extend
之外,您可能还需要在循环结束后执行map.fitBounds(bounds);
。
您对map.setCenter的调用不正确。此函数只接受一个参数,一个LatLng。你传两个。我假设你想做:
map.setCenter(bounds.getCenter());
map.getBoundsZoomLevel(bounds);
虽然地图对象上没有我知道的getBoundsZoomLevel函数。