我正在建立一个网站,为山地爱好者提供个人名单。
自从多年以来,我一直停留在Google地图(pathRequest)
的功能polyline
上。
我无法理解,因为这段代码是来自很多来源的副本而且很遗憾Firefox调试对Google地图的影响不好......让事情变得更糟。
这是页面: http://www.mes-sommets.fr/ajouter-un-sommet/
要进行测试,您需要输入"adresse départ"
(开始)and
“adresserivevée”(结束)+“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:
function getDistance(path){
var m = google.maps.geometry.spherical.computeLength(path);
var km = m / 1000;document.getElementById(“ninja_forms_field_34”)。value = km.toFixed(2)+“km”;
var pathRequest = { '路径':路径, 'samples':256}elevator.getElevationAlongPath(pathRequest,plotElevation);
};
功能plotElevation:
function 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" ;
}}
任何建议都会很棒,如果我没有提供足够的代码,请告诉我。希望没关系。
致以最诚挚的问候,
本杰明
答案 0 :(得分:0)
我唯一能看到的就是这个。
DirectionsRoute overview_path
是&#34; 数组的LatLng&#34;
ElevationService getElevationAlongPath
函数要求PathElevationRequest为其路径设置数组。
到目前为止一切都很好......
但是,Polyline getPath
函数会返回 MVCArray ,而不仅仅是数组。
通常它们对我来说似乎是可以互换的,但这可能是他们不在的地方。
您可以尝试调用MVCArray上的getArray函数将其转换为数组,看看是否有任何区别。
var polyline_path = polyline.getPath();
getDistance(polyline_path.getArray());