我得到了一些编码的多段线来显示在谷歌地图上。然而,我使用 JQuery 来实现很多前端功能,现在我一直在尝试找到使用 JQuery 显示编码折线的正确语法。添加编码折线的标准语法是
var polyline = new GPolyline.fromEncoded({
color: "#0000ff",
weight: 4,
opacity: 0.8,
points: "_gkxEv}|vNM]kB}B}@q@YKg@IqCGa@EcA?c",
levels: "P@B@D??@@?D?CA?B",
zoomFactor: 2,
numLevels: 18
});
map.addOverlay(polyline);
显然这不适用于 JQuery。使用 JQuery 添加普通折线
new google.maps.Polyline({
path: stationPathCoordinates1,
strokeColor: "#20B5B3",
strokeOpacity: 1.0,
strokeWeight: 4
其中 StationPathCoordinates 是经度和纬度的数组。我现在有这个数组在编码折线中。我认为它可能是新的 google.maps.Polyline.fromEncoded 但这不起作用。有人知道 JQuery 中的语法吗?或者是否可能?
提前致谢
最佳答案
正如 @belugabob 已经指出的那样,在使用 Google Maps JavaScript API 等 API 时,一般来说不应该有任何理由与 jQuery 发生冲突。
也就是说,在没有看到完整示例的情况下,我只能推断出以下内容:
您提供的两个代码片段似乎源自两个完全不同版本的 Google Maps JavaScript API,即前者为 Google Maps JavaScript API V2,后者为 Google Maps JavaScript API V3(请参阅PolylineOptions 对象规范部分> 那里)。
V2 API 版本 has been deprecated 自 2010 年 5 月 19 日起,但根据 Googles respective deprecation policy,支持期限为 3 年。
V3 API 版本还不支持编码折线,请参阅 Thors answer 至此 migration to V3 线程中的第 5 点(如果需要,请参阅 Encoded polylines vs Polyline class 了解此更改的一些背景信息)。
因此,如果您需要维护使用编码折线,您有两个选择:
继续使用 V2 API,这意味着让您的第一个代码片段按其应有的方式工作;您需要提供更多详细信息,以便我们找出您的代码出了什么问题(因为 jQuery 很可能不应该归咎于此!),但有两点需要注意:
最佳猜测:API 版本组合和您对 belugabos 问题的评论表明您可能只是缺少一些依赖项或包含错误的依赖项!
另一个观察结果:至少根据 Interactive Polyline Encoder Utility,第一个代码片段中的编码点和级别不匹配。
升级到 V3 API,这意味着将编码的折线解码为
LatLng
的Array
或MVCArray
。我不知道官方示例,但作为起点,您可以查看 Esas answer 线程中的 Encoded polylines?,它也指向 Google Polyline Utility 源代码中的decodeLine()
函数作为示例解码器。
祝你好运!
关于jquery - 使用 JQuery 编码折线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3236029/