Еще немного о Яндекс.Пробках…

Posted by Olegas on Март 12, 2010
IT

Не так давно Яндекс стал отдавать данные о пробках для большого количества других регионов, кроме Москвы, Питера, Киева и Екатеринбурга. Как разместить слой с пробками на своей карте я писал ранее. Сегодня разберемся как можно получить список регионов, в которых обрабатываются пробки.

У Яндекс.Пробок наряду с http://trf.maps.yandex.net/trf/stat.js есть еще http://trf.maps.yandex.net/trf/coverage.js. Этот скрипт рассказывает нам, какие регионы покрыты данными о пробках (ну или хотя бы такая информация поддерживается).

Вот что отдает данный скрипт…

YMaps.TrafficLoader.onLoad(
  "coverage",
  {
    regions: (function(){
      function p(x,y){
        return new YMaps.GeoPoint(x,y);
      }
      function b(l,b,r,t){
        return new YMaps.GeoBounds(p(l,b),p(r,t));
      }
      return [
        {
          name:"Москва и Московская область",
          regionId:"1",
          view:{
            point:p(37.620070,55.753630),
            boundedBy:b(36.61977492,55.3105725984,38.35467432,56.4313303008)
          },
          boundedBy:b(35.14318524,54.2560801359,40.20433848,56.9613240948)
        }
      ];
    })()
  }
);

Если сделать все выполняемые преобразования, на входе получается вот такой объект:

return {
  regions: [
    {
      name:"Москва и Московская область",
      regionId:"1",
      view:{
        point: YMaps.GeoPoint(37.620070,55.753630),
        boundedBy: YMaps.GeoBounds(36.61977492,55.3105725984,38.35467432,56.4313303008)
      },
      boundedBy: YMaps.GeoBounds(35.14318524,54.2560801359,40.20433848,56.9613240948)
    }
  ];
}

Снова используется YMaps.TrafficLoader. Данные приходят в виде объекта с полем regions, в котором содержится массив объектов. Каждый объект имеет одинаковый набор полей:

  • name – название области или города;
  • regionId – какой-то ID. он же присутствует в выдаче stat.js;
  • view: область просмотра, view.point – объект типа YMaps.GeoPoint – центр области, удобно использовать вместе с YMaps.Map.setCenter(geoPoint) для перехода к нужной области, view.boundedBy – YMaps.GeoBounds – прямоугольник, ограничивающий область покрытия;
  • boundedBy – аналогично view.boundedBy.

По результатам «исследований» сделал Windows Sidebar Widgets с пробками в любом городе, который сейчас поддерживается Яндексом. Не такой крутой как оригинальный, но зато позволяет смотреть карту прямо в виджете без открытия самого сайта.

Загрузить виджет для Windows Sidebar «Другие Яндекс.Пробки»

Tags: ,

1 комментарий to Еще немного о Яндекс.Пробках…

[...] Яндекс.Пробки» Posted by admin on Март 12, 2010 IT, Виджеты По результатам «исследования» махенизмов работы Яндекс.Пробок написал свой [...]

Оставить комментарий

WP_Big_City