【发布时间】:2014-09-14 07:06:54
【问题描述】:
我正在开发一个网站,为山地爱好者提供个人山峰列表。
多年来,我一直坚持使用 Google 地图 polyline 的功能 (pathRequest)。
我无法理解,因为这段代码是从很多来源复制而来的,而且令人遗憾的是 Firefox 调试在 Google 地图上表现不佳……让事情变得更糟。
这是页面: http://www.mes-sommets.fr/ajouter-un-sommet/
要进行测试,您需要输入"adresse départ" (start)and"adresse arrivée" (end) + "manuel"mode in option"itinéraire"`。
在自动完成中单击 "adresse arrivée" 时会显示错误。
对于这两个选项:
- automatique (google map direction service) -- OK
- manuel (polyline) -- KO
然后我调用相同的函数:
- distance calculation getDistance(path)
- elevation calculation plotElevation(results, status)
自动模式(谷歌地图方向服务):
var path = result.routes[0].overview_path; getDistance(path);
模式手册(折线):
var polyline_path = polyline.getPath(); getDistance(polyline_path);
函数获取距离:
函数 getDistance(路径) {
var m = google.maps.geometry.spherical.computeLength(path);
var km = m / 1000;document.getElementById("ninja_forms_field_34").value = km.toFixed(2) + "km";
变量路径请求 = { “路径”:路径, “样本”:256 }elevator.getElevationAlongPath(pathRequest, plotElevation);
};
函数 plotElevation :
函数 plotElevation(results, status) { if (status == google.maps.ElevationStatus.OK) {
var deniv_positif = 0; var deniv_negatif = 0; var elev = results[0].elevation; for (var i = 0; i < results.length; i++) { if ( (results[i].elevation - elev) > 0 ) { deniv_positif = deniv_positif + (results[i].elevation - elev); } else { deniv_negatif = deniv_negatif + (results[i].elevation - elev); } elev = results[i].elevation; } document.getElementById("ninja_forms_field_31").value = "+" + deniv_positif.toFixed(0) + " / " + deniv_negatif.toFixed(0) + " m" ;} }
任何建议都会很棒,如果我没有提供足够的代码,请告诉我。希望没事。
最好的问候,
本杰明
【问题讨论】:
标签: google-maps-api-3 map polyline elevation