Клуб API Карт

Станции метро

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

Здравствуйте.

Не получается поставить точку станции метро на карту с описанием.

Идея такая: функция поиска ближайшей станции находит координаты и полное описание точки. Далее координаты сохраняются в БД.

Потом мне нужно на карте указать станцию по координатам из базы. Для этого я использую YMaps.Metro.Station.

var point = new YMaps.Metro.Station( new YMaps.GeoPoint(c[0], c[1]) );

map.addOverlay(point);

В итоге, получаю обычную точку - PlaceMark, без описания. Однако, point.name, text, AddressDetails выдает null. Что я не так делаю?

P.S. За ранее, спасибо

6 комментариев
Sergey Konstantinov
28 января 2016, 06:34
YMaps.Metro.Station - просто формат данных, которые возвращает YMaps.Metro.Closest, при создании объекта этого класса никаких дополнительных данных не подгружается.

Все данные о станции Вам необходимо кэшировать самостоятельно в БД так же, как и координаты.
мм, а в чем тогда принципиальное отличие от YMaps.Placemark.?
Sergey Konstantinov
28 января 2016, 06:34
Ни в чем, это просто плэйсмарк с дополнительными полями text и AddressDetails
в таком случае, это не практично - хранить в БД лишнюю информацию.
Sergey Konstantinov
28 января 2016, 06:34
Не более непрактично, чем хранить там же координаты.
Это вопрос кэширования, чтобы создавать меньше нагрузки на сервера Яндекса (а также чтобы не превысить лимит запросов к геокодеру).
Спасибо за ответы.

Может, покажется глупо, но все же )
Если брать во внимание качество программного кода, то лишние нагромождения в виде функций не всегда приятны.
Потом, если проблема в геокодере, то нельзя было сделать полноценный объект для станций метро. Т.е. указать, скажем, какой-то идентификатор и по нему получать данные напрямую и те же координаты в том же числе.