2016-05-21 11 views
0

Ich benutze Mapbox um Karten in meiner Anwendung anzuzeigen. Ich zeige den Standort des Benutzers an, während sich der Benutzer bewegt, und um den Standort auf der Straße beizubehalten, versuche ich, die Kartenbox map-matching api zu verwenden. Aber die API arbeitet mit den Testpunkten in map-matching api, wirft aber Fehler, wenn ich meine tatsächlichen lat-long Punkte verwende. https://www.mapbox.com/api-documentation/#retrieve-a-match ich die Anfrage senden mitMapBox map passender api Wurffehler

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

Wenn meine trace.json Datei mit dem Testeingang in api erwähnt hat, erhalte ich das Ergebnis Diese trace.json mit lat lange aus der api ist, und kehrt zur Folge haben.

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

Aber die gleiche trace.json mit meinem lat-long-Punkt löst folgenden Fehler.

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

kann nicht herausfinden, was mit der Anfrage falsch ist.

Antwort

1

Der Fehlercode, den Sie erhalten haben, ist der Schlüssel zu dem Problem. Ihre "coordinates" Daten müssen in [longitude, latitude] sein, das ist der Standard für GeoJson.

Fehler: { "message": "jeweils mit Schwimmer sein Array koordinieren muss in-Schranken [Länge, Breite]", "Code": "InvalidInput"}

zu beheben, Sie müssen Ihre Daten für die "coordinates" austauschen. Als weiteren Test können Sie GeoJson.io verwenden, um Ihre traces.json zu validieren und um zu überprüfen, ob Sie richtige Eingabedaten in Ihr MapMatch-Tool haben.

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

Sehen Sie diese gist, und das Bild hier, wie Sie andere Werkzeuge verwenden können Ihre ursprüngliche GeoJSON zu validieren. enter image description here