google.maps.geometry有时无法正确加载

时间:2012-06-18 10:59:05

标签: google-maps encoding geometry

我正在使用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));
        }
    }
}

其他时候,库加载正常,因此我可以用它来解码路径。

可能是什么原因? 谢谢你的时间。

2 个答案:

答案 0 :(得分:4)

确保按URL加载库。

答案 1 :(得分:0)

google.maps.geometrygeometry库的一部分。如果您在代码中使用它,则在加载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,它们使用几何体。