Google使用我自己的点映射自定义路由和提升

时间:2012-07-22 22:06:06

标签: javascript api google-maps elevation

我正在尝试重现该页面https://developers.google.com/maps/customize的第三个例子,但是使用我自己的路线,到目前为止我没有太多运气。

问题是使用“setDirections”它从google的api获取路径,但我正在用我自己的long,lat创建一条远足路线,并且真的不知道自己要处理那部分。

这是我到目前为止的地方http://dev.oneshot.nc/www.megarando.nc/html/map.html

1 个答案:

答案 0 :(得分:0)

setDirections很好:根据官方文档,它们可以是字符串(由服务器端的Google地理编码器引擎隐式解析),也可以是LatLong对象,你的很好。

origin: LatLng | String,
destination: LatLng | String,

https://developers.google.com/maps/documentation/javascript/directions#DirectionsRequests

但是,我猜你只想使用显示逻辑,因为你已经定义了一个完整的路径。然后方向不一定适合您,请考虑使用折线(https://developers.google.com/maps/documentation/javascript/overlays#PolylineArrays)。

使用任何类型的图形可视化工具(Google图表:https://developers.google.com/chart/或Raphael JS(http://g.raphaeljs.com/http://raphaeljs.com/analytics.html)作为高程。

要回答您的评论,请尝试此操作(基于https://developers.google.com/maps/documentation/javascript/overlays#Polylines):

var routePath = new google.maps.Polyline({
    path: kids,
    strokeColor: "#FF0000",
    strokeOpacity: 1.0,
    strokeWeight: 2
});

routePath.setMap(map);
elevationPath = kids;
recalcHeight();
});

如我所见,首先,在两点之间发出路线请求。路径是一组路径,因此对于每个路径,它将收集点并将它们放入统一的数组(或单个“路径”)中,并要求所谓的外观函数来绘制折线。路由。

收集点后,它会调用高程服务,告诉路径上的高程,当它返回时,它可以使用图表API绘制图表。

但是,您已经拥有了路径,并且只有一条路径:您只需要告诉Google地图根据您的路径(在变量孩子中)绘制折线,并告诉高程服务返回高程这条路上的点。