Strava API - 准确的经度和纬度

时间:2017-11-28 14:19:44

标签: api strava

有没有人知道如何使用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);
                }
             });
        }
    }

});

任何指导都会很棒。感谢。

2 个答案:

答案 0 :(得分:1)

目前尚不清楚您是仅需要起点坐标,还是需要整个活动的坐标以及所需的准确度。

对查询https://www.strava.com/api/v3/athlete/activities的回复包含一个字段map => summary_polyline,您应该可以从中提取整个(尽管是简化的)活动的坐标。您也可以使用此折线在谷歌地图中显示它。

但是,如果您需要更高的准确度,则需要检索每项活动并使用map => summary_polylinemap => polyline字段。

要获取完整数据streams,请使用

答案 1 :(得分:0)

使用summary_polyline[0]summary_polyline[-1](Ruby)代替舍入值。有关示例,请参阅this code中的Slava