0

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

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 文件在 api 中提到测试输入时,我得到结果 This is trace.json with lat long from the api,并返回结果。

{
"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]
    ]
}
}

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

4

1 回答 1

1

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

错误:{“message”:“每个坐标必须是浮点数组 [longitude, latitude] ”,“code”:“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]
  ]
  }
}

有关如何使用其他工具验证原始 GeoJson 的 信息,请参阅此要点和此处的图像。在此处输入图像描述

于 2016-06-27T23:29:13.363 回答