Яндекс Карта - Получить данные трафика
Я стараюсь получать данные о трафике в определенное время и в определенном месте, используя яндекс-карты. Я смотрю эту страницу(API яндекс карт). И я могу показать данные о трафике на моей собственной карте. Используя геокодирование, я извлекаю некоторые данные (названия мест, координаты и т. Д.) Из карт Яндекса. Но я не знаю, как извлечь только данные трафика. Как мне это сделать? Есть ли на яндекс карте api какая-нибудь функция?
Мой простой код, который показывает данные о трафике на карте ниже
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);
}
1 ответ
Нет законного способа сделать это. На форумах есть некоторые заметки, где люди используют внутренние API карт Яндекса, но они, насколько я знаю, быстро забанены командой Яндекса. Яндекс не предоставляет вам никаких данных о трафике отдельно от карт. Я рекомендовал вам взглянуть на Google Maps 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/