gpt4 book ai didi

javascript - 谷歌地图 v3 : Invalid value for constructor parameter 0 while drawing polylines

转载 作者:行者123 更新时间:2023-11-29 15:03:10 25 4
gpt4 key购买 nike

我在构建多边形时遇到了问题。错误信息是这样的:

Invalid value for constructor parameter 0: (49.27862248020283, -122.79301448410035),(49.277964542440955, -122.79370112960816),(49.278524490028595, -122.7950207764435)

它一定是简单得离谱,但我就是看不出来。您的任何提示都很有用。

我基本上是在模态窗口(带 wicket )的 iframe 内绘制 map 。一切正常,但是当我尝试显示多边形时(点从数据库加载并由网络服务发送)我收到错误消息。

iframe 代码:(仅相关)

 /**
* Draws the polygon.
*/
function drawPolygon() {
if (order >= 3) {
deleteMarkers();

// Construct the polygon
// Note that we don't specify an array or arrays, but instead just
// a simple array of LatLngs in the paths property


polygonObject = new google.maps.Polygon({
paths: polygonCoords,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35
});

polygonObject.setMap(map);

isPolygonDrawed = true;

//After we create the polygon send the points to wicket
parent.sendPoints();

//Change the message on the top label
controlText.style.color = '#ADAAAA';
controlText.innerHTML = polygonCreated;

//With this we make sure no other markers are created after the polygon is drawed.
//Is assigned (order - 1) because when this code is called the order has already been added 1.
MAX_POLYGON_VERTEX = order - 1;

//Disable the create polygon button.
enable = false;
createControlText.style.color = '#ADAAAA';
}
else alert(alertMessage);

现在父级(模态窗口)上的代码

    /**
* Show the polygon on map.
*/
function showPolygon(zoneId) {
var url = applicationRootUrl + 'zonePointsOnMap?zoneId=' + zoneId;
$.getJSON(url, function(data) {
if(data.length == 0) {
return false;
}
frames['zoneMapIFrame'].order = parseInt(data.length);
alert(data.length);
$.each(data, function(i, item) {
if(item != null) {
if(item.latitude != null && item.longitude != null) {
var lat = parseFloat(item.latitude);
var lng = parseFloat(item.longitude);
var latlng = new google.maps.LatLng(lat, lng);
var pointOrder = item.order;
frames['zoneMapIFrame'].polygonCoords[pointOrder] = latlng;
alert(item.order + " point " + latlng);
frames['zoneMapIFrame'].bounds.extend(latlng);
}

}

});
});
setTimeout("frames['zoneMapIFrame'].drawPolygon()", 200);
setTimeout("frames['zoneMapIFrame'].fitMapZoomPolygon()", 300);
}

我可以看到点加载正常并带有警报,但我不断收到错误消息。

帮帮我!

最佳答案

我遇到了同样的问题。不知道这是否是最好的解决方案,可能不是,但它对我有用。

问题是 Latlng 没有被识别。所以我重新创建了数组。

var lats = [];
var lat_size = steps[step].lat_lngs.length;

for (var t=0; t <lat_size; t++) {

lats.push(new google.maps.LatLng(steps[step].lat_lngs[t].lat(), steps[step].lat_lngs[t].lng()))
}
var polylineOptions = {
map: map,
path: lats
}

new google.maps.Polyline(polylineOptions);

关于javascript - 谷歌地图 v3 : Invalid value for constructor parameter 0 while drawing polylines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7295068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com