Клуб API Карт

Измерение расстояний

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

subj

Как измерить расстояние на собственной карте?

а то по умолчанию считает с огромным масштабом)

11 комментариев
будем пробовать, спс) кстати, кто подскажет, как свой инстремент "линейка" сделать, а то, вроде как, стандартный в данном случае использовать нельзя...
Для этого Вы должны реализовать интерфейс YMaps.IControl. Пример реализации собственного управляющего элементы Вы можете посмотреть в Руководстве разработчика.
гм... Тут промелькнула такая мысль.... а что, если использовать такую конструкцию: 1) используем обычный инструмент измерения расстояний 2) зная исходный масштаб карты и тот, который отображается, мы можем определить коэффициент "ошибки" 3) соответственно, разделить возвращаемое значение инструмента "расстояние" на этот самый коэффициент какие будут мнения? :)
Sergey Konstantinov
28 января 2016, 08:55
Это не поможет, поскольку линейка учитывает форму Земли и искажения в проекции Меркатора.
почему не поможет? к примеру, пусть линейка ее учитывает... Но ведь и масштаб, отображаемый на карте это тоже учитывает?
Sergey Konstantinov
28 января 2016, 08:55
В проекции Меркатора масштаб зависит от широты. Чем ближе к полюсу, тем больше искажения, и тем сильнее "растягиваются" размеры объектов. Гренландия кажется больше чем Австралия и пр. Таким образом, просто изменения масштаба "на экваторе" не даст Вам точного измерительного инструмента.
Суть в том, что карта собственная, а не Я.карты. Используется только API Я.карт
Вопрос все еще актуален...
как вариант: - считать её плоской - заранее узнать масштаб карты, тоесть соотношение пикселей-метров - методом coordinatesToMapPixels из геоточки получать координаты точки на вашей карте, ну и дальше понятно)))
Sergey Konstantinov
28 января 2016, 08:55
Вычислить "правильное" расстояние труда не составит. А вот заставить линейку показывать его так просто Вам не удастся. Ждите новую версию.