我在一个数组中有一个 GeoPoints 列表,如下所示:
var coordinates = [[50.7, 6.7], [49.5, 7.0], ...]
当我尝试按照此处encodePath
的说明使用缩小代码时,出现以下错误:
TypeError:a.lat 不是函数
我的代码如下所示:
google.maps.geometry.encoding.encodePath(coordinates)
有任何想法吗?
我在一个数组中有一个 GeoPoints 列表,如下所示:
var coordinates = [[50.7, 6.7], [49.5, 7.0], ...]
当我尝试按照此处encodePath
的说明使用缩小代码时,出现以下错误:
TypeError:a.lat 不是函数
我的代码如下所示:
google.maps.geometry.encoding.encodePath(coordinates)
有任何想法吗?
最后我找到了解决方案!问题是它encodePath
需要一个google.maps.LatLng
对象,而不仅仅是GeoPoints
.
这是一个函数,它将像上面描述的数组转换为编码字符串:
function encodeLatLngPolygon(array) {
var polyOptions = {
strokeColor: '#000000',
strokeOpacity: 1.0,
strokeWeight: 3
}
poly = new google.maps.Polyline(polyOptions);
var path = poly.getPath();
for(var i=0;i<array.length;i++) {
var xyz = new google.maps.LatLng(parseFloat(array[i][0]).toFixed(2), parseFloat(array[i][1]).toFixed(2));
path.push(xyz);
}
var code = google.maps.geometry.encoding.encodePath(path)
return code;
}
toFixed
减少小数点后的数字以节省字节。您可以删除或调整此参数。