有没有人知道如何使用get请求从strava api获取活动的确切经度和纬度?
我试图将strava api与google地图集成,我试图构建一个具有相应长/纬度位置的数组,但https://www.strava.com/api/v3/athlete/activities?per_page=100...
请求只返回经度和纬度四舍五入:start_longitude: 2.6
。
我发现了一个" hacky"通过循环结果然后在循环内发送另一个请求来检索起始坐标的方法,尽管这会发送太多请求。 - 下面是我的请求的片段:
// start request
$.get( "https://www.strava.com/api/v3/athlete/activities?per_page=100&access_token=ACCESSTOKEN", function (results) {
// loop through request
for (i = 0; i < results.length; i++) {
if(results[i].type === 'Run') {
// add an element to the array for each result
stravaComplete.push(true);
$.get( "https://www.strava.com/api/v3/activities/"+ results[i].id +"?per_page=5&access_token=ACCESSTOKEN", function (runs) {
if(typeof runs.segment_efforts[0] != "undefined"){
var runLatitude = runs.segment_efforts[0].segment.start_latitude;
var runLongitude = runs.segment_efforts[0].segment.start_longitude;
stravaActivityList.push({"lat": runLatitude, "lng": runLongitude});
}
// remove the element from the array
stravaComplete.pop();
// if all the elements have been removed from the array it means the request is complete
if(stravaComplete.length == 0) {
// reinitialize map
initMap(stravaActivityList);
}
});
}
}
});
任何指导都会很棒。感谢。
答案 0 :(得分:1)
目前尚不清楚您是仅需要起点坐标,还是需要整个活动的坐标以及所需的准确度。
对查询https://www.strava.com/api/v3/athlete/activities
的回复包含一个字段map => summary_polyline
,您应该可以从中提取整个(尽管是简化的)活动的坐标。您也可以使用此折线在谷歌地图中显示它。
但是,如果您需要更高的准确度,则需要检索每项活动并使用map => summary_polyline
或map => polyline
字段。
要获取完整数据streams,请使用
答案 1 :(得分:0)