MapBox地图匹配api抛出错误

时间:2016-05-21 23:04:20

标签: json mapbox geojson map-matching

我正在使用mapbox在我的应用程序中显示地图。我在用户移动时显示用户的位置,并保持街道上的位置我正在尝试使用地图框地图匹配api。但是api适用于地图匹配api中的测试点,但是当我使用我的实际lat-long点时会抛出错误。 https://www.mapbox.com/api-documentation/#retrieve-a-match 我使用

发送请求
//in game class
    board[1][1].set_bat();  
    board[1][1].get_message();

//room.h
    class room {
        private:
        event *ev;  //here, each room class is given an event class pointer
    public:
        void set_bat();
        void get_message();

    };

//in room.cpp
    void room::set_bat(){  //here, the event pointer is set to one of its child classes.
        bats x;
        ev = &x;
        //ev->message(); if the message func is called here, it return "bats" correctly, 
    }
    void room::get_message(){ //calling this, is where the error occurs
        ev->message();
    }

//in event.h
    class event {
        public:
            virtual void message() = 0;
    };

//in bats.h
    class bats: public event{
    public:   
        void message();
    };

 //in bats.cpp
    void bats::message(){
        cout<<"bats"<<endl;
    }

当我的trace.json文件在api中有测试输入提及时,我得到了结果 这是来自api的lat long的trace.json,并返回结果。

curl -X POST \
--header "Content-Type:application/json"-d @trace.json \
 "https://api.mapbox.com/matching/v4/mapbox.driving.json?access_token=<your token here>"

但是跟我的lat-long点相同的trace.json会抛出错误。

{
"type": "Feature",
"properties": {
"coordTimes": [
  "2015-04-21T06:00:00Z",
  "2015-04-21T06:00:05Z"
]
},
"geometry": {
"type": "LineString",
"coordinates": [
  [ 13.418946862220764, 52.50055852688439 ],
  [ 13.419011235237122, 52.50113000479732 ]
]
}
}

无法弄清楚请求有什么问题。

1 个答案:

答案 0 :(得分:1)

您收到的错误代码是问题的关键。您的"coordinates"数据必须位于[longitude, latitude] GeoJson的标准内。

  

错误:{“message”:“每个坐标必须是带有浮点入境的数组[经度,纬度] ”,“代码”:“InvalidInput”}

要解决此问题,您需要更换"coordinates"的数据。作为另一项测试,您可以使用GeoJson.io来验证traces.json,并验证您的MapMatch工具中是否有正确的输入数据。

{
  "type": "Feature",
  "properties": {
  "coordTimes": [
  "2015-04-21T06:00:00Z",
  "2015-04-21T06:00:05Z"
  ]
},
  "geometry": {
  "type": "LineString",
  "coordinates": [
    [-122.229704, 47.586479],
    [-122.209869, 47.578238]
  ]
  }
}

请参阅此gist以及此处的图片,了解如何使用其他工具验证原始GeoJson。 enter image description here