我正在使用google encoding libraries对路径点数组进行编码和解码,如下所示:
编码:
var encodedPath = google.maps.geometry.encoding.encodePath(path);
解码:
var decodedPath = google.maps.geometry.encoding.decodePath(encodedPath);
但是我发现每次都不会一直加载编码库。有时库只会加载到地图,我在下面打印出来:
showRouteFor(): google = [object Object]
showRouteFor(): google.maps = [object Object]
showRouteFor(): google.maps.geometry = undefined
使用下面的JS代码:
console.log("showRouteFor(): google = " + google);
if(google != null) {
console.log("showRouteFor(): google.maps = " + google.maps);
if(google.maps != null) {
console.log("showRouteFor(): google.maps.geometry = " + JSON.stringify(google.maps.geometry));
if(google.maps.geometry != null) {
console.log("showRouteFor(): google.maps.geometry.encoding = " + JSON.stringify(google.maps.geometry.encoding));
}
}
}
其他时候,库加载正常,因此我可以用它来解码路径。
可能是什么原因? 谢谢你的时间。
答案 0 :(得分:4)
确保按URL加载库。
答案 1 :(得分:0)
google.maps.geometry
是geometry库的一部分。如果您在代码中使用它,则在加载Google Maps JavaScript API时应该specify it as a library,例如:
< script src =" https://maps.googleapis.com/maps/api/js?libraries = places, geometry & key = apikey " async defer>< / script>
令人困惑的部分是Google Maps JavaScript API的其他部分在内部使用几何库。即使您没有指定库,这也会导致它仍然适用于您 - 但前提是您恰好运用了其他功能,例如DirectionsRenderer,它们使用几何体。