谷歌地图路径请求不适用于折线

时间:2014-07-23 07:50:25

标签: google-maps-api-3 map polyline elevation

我正在建立一个网站,为山地爱好者提供个人名单。

自从多年以来,我一直停留在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" ;
     

}}

任何建议都会很棒,如果我没有提供足够的代码,请告诉我。希望没关系。

致以最诚挚的问候,

本杰明

1 个答案:

答案 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());