2016-03-26 22 views
1

Tarayıcıya geometri ve yönlendirme verilerini (iki lat/uzun çift arasında) başarıyla döndürmek için bir javascript uygulamasında Mapbox Yol Tarifleri kullanıyorum. Sonunda bir harita üzerinde onları birbirine bağlayan rota polyline göstermeye çalışıyorum, ancak veri var olsa bile sonuç nesnesindeki yön verilere erişemiyorum.Mapbox yol tarifi: sonuçtan yol tarifi verileri nasıl alınır

L.mapbox.accessToken ='pk.eyJ1Ij...9Uk_Z8JqMOQ'; 
    L.mapbox.id = 'tom...ibb'; 
    var startLatLng = L.latLng(38.935899, -77.022353); 
    var endLatLng = L.latLng(38.90, -77.10); 
    var directions = L.mapbox.directions(); 
    directions.setOrigin(startLatLng); 
    directions.setDestination(endLatLng); 
    var route = directions.query(); 
    console.dir(route); 

Not console.dir hattı: Burada

istek kodudur.

console.log(route.destination); 
     => Object {type: "Feature", geometry: Object, properties:... 
    console.log(route.origin); 
     => Object {type: "Feature", geometry: Object, properties:... 
    console.log(route.options); 
     => Object {units: "imperial"} 

Ama:

_initHooksCalled:true 
    _query:null 
    _requests:Array[0] 
    _waypoints:Array[0] 
    destination:Object 
    directions:Object 
    options:Object 
    origin:Object 

Bu benim route.destination, route.options ve route.origin nesneler için konsolda gördükleri şeydir: Bu benim rota konsolunda gördüğüm bu Route.directions görmeye çalışıyorum, tanımlanmamış.

console.log(route.directions); 
     => undefined 

zaman "açılış" (console.dir aracılığıyla) konsolunda tüm rota nesne ben arıyorum tarifi verileri görmek: erişirken

directions:Object 
     destination:Object 
     origin:Object 
     routes:Array[2] 
      0:Object 
       distance:10460 
       duration:862 
       geometry:Object 
       steps:Array[26] 
       ... 

Neden bu "tanımsız" olacağını özellikle, aynı nokta sözdizimini kullanarak diğer "alt nesneler" (örn. route.options) içeriklerini görebildiğimde route.directions ile? Ben rota nesnesi var routeJson = JSON.stringify(route); "stringify" ne zaman

Son olarak, bu bkz:

{"options":{ 
     "units":"imperial" 
    }, 
    "_waypoints":[], 
    "_initHooksCalled":true, 
    "origin":{ 
     "type":"Feature", 
     "geometry":{ 
      "type":"Point", 
      "coordinates":[-77.022353,38.935899] 
     }, 
     "properties":{"query":[-77.022353,38.935899]} 
    }, 
    "destination":{ 
     "type":"Feature", 
     "geometry":{ 
      "type":"Point", 
      "coordinates":[-77.1,38.9]}, 
     "properties":{"query":[-77.1,38.9]} 
    }, 
    "_requests":[], 
    "_query":{}} 

Yine YOK tarifi içeriği! Herhangi bir düşünce büyük takdir edilecektir!

+0

Eğer 'talimatları' ve/veya 'geometri' parametrelerini geçerseniz, bu bilgi bitleri geri dönecek? Belgeler biraz belirsiz ... –

cevap

0

Bu API'yi query işleviyle nerede bulabilirsiniz? Directions API documentation on Github göre, böyle çağırmak edilmelidir:

var mapboxClient = new MapboxClient('ACCESSTOKEN'); 
mapboxClient.getDirections(
    [ 
    { latitude: 33.6, longitude: -95.4431 }, 
    { latitude: 33.2, longitude: -95.4431 } ], 
    function(err, res) { 
    // res is a document with directions 
}); 

// With options 
mapboxClient.getDirections([ 
    { latitude: 33.6875431, longitude: -95.4431142 }, 
    { latitude: 33.6875431, longitude: -95.4831142 } 
], { 
    profile: 'mapbox.walking', 
    instructions: 'html', 
    alternatives: false, 
    geometry: 'polyline' 
}, function(err, results) { 
    console.log(results.origin); 
}); 

Ben geometry: 'polyline geçen sen yanıtına dahil geometri bilgi almak emin olmak için gerekenleri olduğunu sanıyorum.

+0

[mapbox-directions.js github] 'dan direction.query() işlevini aldım (https://github.com/mapbox/mapbox-directions.js/blob/mb- sayfalar/API.md). Daha önce MapboxClient tekniğini denedim ancak "MapboxClient tanımlı değil" hatasını aldım. Bu arada başka bir bakacağım ... – tomBeach

+0

Oh, bu bir broşür eklentisi. –

İlgili konular