我已经获得了一些编码折线,可以在谷歌地图上显示。然而,我正在使用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是long和lats的数组。我现在在编码折线中有这个数组。我认为它可能是新的google.maps.Polyline.fromEncoded但这不起作用。任何人都知道JQuery中的语法,或者甚至可能吗?
提前致谢
答案 0 :(得分:5)
正如@belugabob已经指出的那样,在使用像谷歌地图JavaScript API这样的API时,一般不应该与jQuery发生冲突。
那就是说,如果没有看到完整的例子,我只能推断出以下内容:
您提供的两个代码片段似乎源于两个完全不同版本的Google Maps JavaScript API,即前者为Google Maps JavaScript API V2,后者为Google Maps JavaScript API V3(请参阅< em> PolylineOptions对象规范那里。)
截至2010年5月19日的V2 API版本has been deprecated,但根据Googles respective deprecation policy将支持3年。
V3 API版尚未支持编码多段线,请参阅此Thors answer主题中的migration to V3指向第5点(请参阅Encoded polylines vs Polyline class如果需要,请参阅此更改的某些背景信息。
因此,如果您需要维护使用编码折线,您有两个选择:
继续使用V2 API,这意味着让您的第一个代码片段正常工作;你需要提供更多的细节,然后让我们弄清楚你的代码有什么问题(因为jQuery很可能不会在这里责怪!),虽然提前两点:
最佳猜测:API版本组合以及您对belugabobs问题的评论表明您可能只是遗漏了一些或包含错误的依赖项!
另一个观察结果:至少根据Interactive Polyline Encoder Utility,您的第一个代码片段中的编码点和级别不匹配。
升级到V3 API,这意味着将编码的折线解码为Array
或MVCArray
LatLng
。我不知道一个官方示例,但是作为起点,您可以在Esas answer主题中查看Encoded polylines?,该主题指向Google Polyline Utility源中的decodeLine()
函数代码以及示例解码器。
答案 1 :(得分:0)
现在似乎对编码折线有某种支持。
http://code.google.com/apis/maps/documentation/javascript/reference.html#encoding
文档不是很好但我也在这里找到了一个例子:
http://code.google.com/apis/maps/documentation/javascript/examples/geometry-encodings.html
所以这应该让你知道如何做到这一点。