这很难解释,所以我只是举个例子。
for(i=1;i<position.length;i++)
{
if(position[i].lat() == position[i-1].lat() && position[i].lng() == position[i-1].lng())
{
position[i].lat = position[i].lat() + ((Math.random() -.5) / 1500);
position[i].lng = position[i].lng() + ((Math.random() -.5) / 1500);
//position[i].lng = position[i].lng() + ((Math.random() -.5) / 1500);
//console.log(position[i].lat().value);
}
}
基本上我只想改变位置数组中lat和lng的值,但我似乎无法找到解决方案。
$('#data').find('div[name=postalCode]').each(function(i) {
var latlng = $(this).find('input[type=hidden]');
position.push(new google.maps.LatLng(latlng[0].value, latlng[1].value));
});
这就是位置数组的填充方式。
感谢任何帮助。谢谢 要意识到上面的比较代码没有完全比较,我会把新代码放在这里以防万一有人使用它
for (var i = 0; i < position.length; i++) {
for(var k = i+1; k<position.length; k++){
if (position[i].lat() == position[k].lat() && (position[i].lng() == position[k].lng())) {
console.log("before change" + i + position[i].lat());
position[i] = new google.maps.LatLng(
position[i].lat() + ((Math.random() * 1.5) / 100),
position[i].lng() + ((Math.random() * 1.5) / 100)
);
console.log("after change" +i + position[i].lat());
}
}
}
答案 0 :(得分:1)
https://developers.google.com/maps/documentation/javascript/reference
“请注意,您无法修改LatLng的坐标。如果您想计算另一个点,则必须创建一个新点。”
简而言之,请勿更改值,替换条目。
示例:
for (var i = 1; i < position.length; i++) {
if (position[i].lat() == position[i - 1].lat() && position[i].lng() == position[i - 1].lng()) {
position[i] = new google.maps.LatLng(
position[i].lat() + ((Math.random() - .5) / 1500),
position[i].lng() + ((Math.random() - .5) / 1500)
);
}
}