Клуб API Карт

Спецификация адресов

Пост в архиве.

Здравствуйте, Подскажите пожалуйста, существует ли четкая спецификация адресов в Яндекс.Картах?

Столкнулся с такой задачей: размещаю на картах ссылки для объектов.

Объекты расположены не только на улицах, а ещё и на ж.д. станциях.


В результате, получается что для разного типа адреса, нужен разный тип записи

Россия, г.Москва, ул. Петровка, д.25 (улица)

Россия, ж.д., станция Тимирязевская (ж.д. станция)

Россия, Самарская область, г. Самара, м. Кировская (метро)


Существует ли единый формат записи?

Чтобы не делать разные форматы для разных "типов" адресов.

А также, существует ли спецификация сокращений?

улица, дом, поселок городского  типа, село и т.п....



Заранее спасибо тем кто подскажет или даст ссылку на спецификацию


p.s. Использую функцию showAdress из примера Яндекса.

        function showAddress (value) {
map.removeOverlay(geoResult);
var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});

YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
if (this.length()) {
geoResult = this.get(0);
map.addOverlay(geoResult);
map.setBounds(geoResult.getBounds());
}else {
alert("Ничего не найдено")
}
});
}
5 комментариев
Александр Новиков
28 января 2016, 08:19
Думаю что не нужно ввыодить понятие "тип адреса". В вашем бы случае я сделал следующий алгоритм формирования адреса
[Страна], [Область], [Город], [Улица], [Дом], [(примечание)]

И соответственно при задании адреса заполнять строку таким образом. И пропускать те поля, для которых жанные отсутствуют. А дальше заполняете вашу базу адресов с учетом этого фактора.

Если это ж/д станция, то указываете ее название в качестве города, а улицы и дом оставляете пустыми.

Если станция метро, то улицу не пишете, а вместо номера дома, пишете название станции.

Таким образом у вас будет один алгоритм формирования данных и будет он зависеть только от того какие указаны поля для адреса.

А стандартные сокращения я думаю можно использовать. Либо если адрес все равно формируется через базу, то можно и полностью писать: город, улица, проспект, переулок и т.п.
Удалённый пользователь
28 января 2016, 08:19
Спасибо! ) пока планируем использовать подобную схему.

Спасибо за комментарий.
В Яндексе используется спецификация XAL.

У объектов класса YMaps.GeocoderResult есть поле AddressDetails согласно этому стандарту.
Извините, не совсем правильно понял вопрос.

Спецификация XAL используется для представления выходной информации, для входной информации используется следующий формат:

[страна] - Росиия; Украина
[область, республика, край] - Московская область; республика Дагестан; Алтайский край
[район внутри области] - Орехово-Зуевский район
[Город] - Москва; Нижний Новгород; Киев
[район города] - Москва, ЦАО
[город внутри города] - Москва, Зеленоград
[микрорайн, квартал] - Зеленоград, 16-й микрорайон
[улица] - Костромская улица
[километр] - МКАД, 18-ый километр
[дом, строение, корпус, объект] - Москва, ул. Самокатная, дом 1, строение 21; станция Андроновка

Учтите, что любой из пунктов может быть пропущен.
Удалённый пользователь
28 января 2016, 08:19
Спасибо за ответ.

На самом деле со стандартными адресами всё достаточно понятно. Сложности возникали с адресами типа:

Россия, Воронежская область, ж.д., станция Лиски

Лично я разобрался...

Что касается адресов связанных:

1. С железнодорожными станциями
2. метро
3. Мосты и пр.,  конечно, имело бы смысл отдельно где-то описать формирование таких адресов.

Вот как получилось реализовать в итоге. Тут пока только пункты продаж, скоро будет большая карта с расположением платежных терминалов

Вот пример, как реализовано )))