2015-02-04 9 views
1

Я пытаюсь получить данные о трафике в удобное время и место с использованием карт yandex. Я смотрю this page (api yandex maps). И я могу показать данные трафика на моей собственной карте. Используя geocoding, я извлекаю некоторые данные (географические названия, координаты и т. Д.) Из карт yandex. Но я не знаю, как я извлекаю только данные трафика. Как мне это сделать? Есть ли какая-либо функция на карте yandex api?Yandex Map - Получить данные о трафике

Мой простой код, который показывает данные о трафике на карте ниже

ymaps.ready(init); 
    var myMap, 
     myPlacemark; 

    function init(){ 
     myMap = new ymaps.Map ("mapId", { 
      center: [28.968484, 41.01771], 
      zoom: 7 
     }); 

     myPlacemark = new ymaps.Placemark([28.968484, 41.01771], { 
      content: 'Moscow!', 
      balloonContent: 'Capital of Russia' 
     });      


     // This page should show traffic and the "search on map" tool 
     ymaps.load(['package.traffic', 'package.search'], addControls); 

     myMap.geoObjects.add(myPlacemark); 
    }  

    function addControls(map) { 
     myMap.controls.add('trafficControl').add('searchControl'); 
     var trafficControl = new ymaps.control.TrafficControl({shown: true}); 
     map.controls.add(trafficControl); 
     function updateProvider() { 
      trafficControl.getProvider('traffic#actual').update(); 
     } 
     // We will send a request to update data every 4 minutes. 
     window.setInterval(updateProvider, 1 * 60 * 1000); 
    } 

ответ

0

Там нет никакого законного способа сделать это. На форумах есть несколько заметок, в которых люди используют внутренние api-карты Yandex, но они, насколько мне известно, быстро запрещены командой Яндекса. Yandex не предоставляет вам данные о трафике отдельно от карт. Я рекомендовал вам взглянуть на Карты Google Api, там вы можете получить информацию о трафике на указанном вами маршруте. Пример:

final String baseUrl = "http://maps.googleapis.com/maps/api/directions/json";// path to Geocoding API via http 

    final Map<String, String> params = new HashMap<String, String>(); 
    params.put("sensor", "false");// if data for geocoding comes from device with sensor 
    params.put("language", "en"); 
    params.put("mode", "driving");// move mode, could be driving, walking, bicycling 
    params.put("origin", "Russia, Moscow, Poklonnaya str., 12");// start point of route as address or text value of lon and lat 
    params.put("destination", "Russia, Moscow, metro station Park Pobedy");// the same for end point 
    final String url = baseUrl + '?' + encodeParams(params);// generate final url 

    final JSONObject response = JsonReader.read(url);// perform request and read answer where we could also get coordinates 
    //results[0]/geometry/location/lng and results[0]/geometry/location/lat 

    JSONObject location = response.getJSONArray("routes").getJSONObject(0); 
    location = location.getJSONArray("legs").getJSONObject(0); 
    final String distance = location.getJSONObject("distance").getString("text"); // get distance for route 
    final String duration = location.getJSONObject("duration").getString("text"); // get duration for route 

Для получения дополнительной информации просто посмотрите на https://developers.google.com/maps/