2016-05-21 2 views
0

Я использую mapbox для отображения карт в своем приложении. Я показываю местоположение пользователя, когда пользователь перемещается, и чтобы сохранить местоположение на улице, я пытаюсь использовать сопоставление карт с картами. Но api работает с тестовыми точками в сопоставлении api, но бросает ошибку, когда я использую свои фактические точки lat-long. https://www.mapbox.com/api-documentation/#retrieve-a-match я отправить запрос, используяMapBox сопоставление карты api throwing error

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>" 

Когда мой файл trace.json имеет тестовый вход упоминается в апи, я получаю результат Это 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 ] 
] 
} 
} 

Но тот же trace.json с моей лат-длинной точкой вызывает следующую ошибку.

Error : {"message":"each coordinate must be array with float in-bounds  [longitude, latitude]","code":"InvalidInput"} 

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

не может понять, что не так с запросом.

ответ

1

Код ошибки, полученный вами, является ключом к проблеме. Данные вашего "coordinates" должны быть в [longitude, latitude], который является стандартом для GeoJson.

Ошибка: { "сообщение": "каждая координата должна быть массив с плавающей точкой в ​​пределах поля [долгота, широта]", "код": "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