Клуб API Карт

Соответствие номеров регионам

r-omk-a
27 мая 2010, 17:07

Вот таким вот нехитрым скриптом:

YMaps.Regions.load("ru", function (state, response) {
  if (state == YMaps.State.SUCCESS) {
    response.forEach(function (obj, objIndex, group) {
          console.log(objIndex + '; ' + obj.name);
      );
  }
});

получил список всех регионов, который отдает модуль "Регионы" и номеров для этих регионов. Можно ли быть уверенным, что со временем соответствие номеров регионамостанется неизменным?

9 комментариев
Подписаться на комментарии к посту
получить второй раз не судьба будет?)
Не судьба. Данным возвращаемым Яндексом ставятся в соответствие записи в БД на моем сервере. Если индексы внезапно сменятся, то соответствие их данным в моей БД перестанет быть корректным. По этому мне надо знать следить ли мне постоянно за тем не поменялось ли соответствие номеров регионам или оно будет постоянным.
bd sql? UPDATE отменили?
Да причем тут апдейты вообще? Вы прочитали мой предыдущий пост? Я один раз вобью данные в базу и должен знать следует мне периодически проверять результат возварщаемый API Яндекс.Карт на предмет наличия изменения или данные изменяться не будут и такой контроль с моей стороны не нужен.
я предполагаю, что не будут. Ибо для разработчиков Яндекс.Карт это тоже будет излишняя работа.
Нет, нельзя быть увереннным в этом. Порядок регионов, а также их названия могут поменяться.

Могу посоветовать получить координаты всех регионов, закэшировать их и потом использовать.
Хм... А в какой момент может произойти такое изменение? При изменении версии API?

Немного не пойму зачем мне координаты кешировать. Суть приложения, которое я пишу, такая: в админке создается список регионов, каждому региону в соответствие ставится два параметра: id этого региона, возвращаемое API Яндекса и некоторое число num. Далее выводится карта, в которой каждый регион выделен определенным цветом, в зависимости от значения num. Мой скрипт:
* берет пары id:num,
* делает запрос к API карт,
* получает список регионов,
* проходит по этому списку циклом, для каждого элемента цикла находит соответствие id:num, где id заданное в моей админке совпадает с номером региона, возвращаемым API,
* в зависимости от num накладывает на регион полигон определенного цвета.

В результате получается карта с регионами разных цветов. Если со временем номера у регионов изменятся, то на созданной сейчас карте значения перемешаются. Получается мне постоянно надо будет следить за тем, не изменился ли порядок выдачи регионов и если изменился, то обновлять значения в своей базе. Это не очень удобно, особенно если учесть, что карт таких может быть несколько.
Простой пример. Предположим Яндекс отдает три региона:
1 — Москва
2 — Санкт-Петербург
3 — Калининград, я у себя на сайте создаю материал, к которому прикреплена карта и скрипт, который Москву выделяет зеленым цветом, Питер — желтым, Калининград — красным. Если завтра Яндекс начнет отдавать регионы в другом порядке и первым, например станет Калининград, то в моем материале на карте он будет отмечен зеленым, а не красным цветом.
Ориентируйтесь на название регионов. Меняться они будут редко, если вообще будут ;)