1

我正在使用google 编码库对路径点数组进行编码和解码,如下所示:

编码:

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));
        }
    }
}

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

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

4

2 回答 2

5

确保通过URL加载库。

于 2012-11-13T14:09:22.120 回答
1

google.maps.geometry几何库的一部分。如果您在代码中使用它,则应在加载 Google Maps JavaScript API 时将其指定为库,例如:

<script src="https://maps.googleapis.com/maps/api/js?libraries=places, geometry &key= apikey " async defer></script>

令人困惑的部分是 Google Maps JavaScript API 的其他部分在内部使用几何库。即使您没有指定库,这也会导致它仍然为您工作 - 但前提是您碰巧使用了一些其他功能,例如使用几何的 DirectionsRenderer。

于 2018-02-22T21:17:57.650 回答