我正在使用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 ]
]
}
}
无法弄清楚请求有什么问题。
答案 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。