Клуб API Карт

Найдено на тему «расчёт расстояния»:
Поиск точки на маршруте по пройденному расстоянию.
vvnab
15 июня 2016, 10:47

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

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

Если кто сталкивался, подскажите, пожалуйста, решение.

1 комментарий
маршрутизация,маршрутизатор,расчёт расстояния,измерение расстояний,расстояние
Растояние между точками
Dark1910
29 мая 2015, 15:24

Здравствуйте, подскажите как подсчитать растояние между двумя точками с учетом пробок?

3 комментария
API 2.1,расчёт расстояния
Построение кратчайшего маршрута между двумя точками на картографируемой поверхности
Юрий Бойко
23 апреля 2015, 20:31

Добрый день, Коллеги!

 

Помогите решить проблему с отображением маршрутов на карте. Есть два пункта и необходимо соединить их линией по дуге. Я пытался воспользоваться методом solveInverseProblem(startPoint,endPoint[, reverseDirection]), но к сожелению никак не получается, не могу понять что нехватает в нижеуказанном коде. Буде очень признателен подсказку или помощь

 

 

<script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>

<script type="text/javascript">

ymaps.ready(init);

 

function init() {

    var myMap = new ymaps.Map('map', {

        center: [55.753994, 37.622093],

        zoom: 9

    });

 

    // Построим кратчайший маршрут от Калининграда до Владивостока

    // Найдём координаты Калининграда

ymaps.geocode('Калининград').then(function (res) {

        var startPoint = res.geoObjects.get(0).geometry.getCoordinates();

    

    // Найдём координаты Владивостока

       ymaps.geocode('Владивосток').then(function (res) {

       var endPoint = res.geoObjects.get(0).geometry.getCoordinates(),

    

    // Найдём функцию пути между двумя точками

       path = ymaps.coordSystem.geo.solveInverseProblem(startPoint, endPoint).pathFunction;

    

    // Изобразим путь 20-ю точками

       for (var i = 0; i <= 20; i++) {

    

    // Находим промежуточную точку

       var position = path(i/20).point;

    // Добавим в промежуточную точку метку

       map.geoObjects.add(new ymaps.Placemark(

       position, {

    // Покажем в контенте метки пройденное расстояние

       iconContent: ymaps.formatter.distance(ymaps.coordSystem.geo.getDistance(startPoint, position))

                }, 

{

                    preset: 'islands#redStretchyIcon'

                }

            ));

        }

    });

});

}

</script>

 

<div id="map" style="width: 600px; height: 400px"></div>

 

1 комментарий
API 2.1,расчёт расстояния,геокодирование
Как правильно найти расстояние между 2 точками?
murad@kaspsoft.com
12 апреля 2015, 17:28

Добрый день, никак не могу понять, как праильно вычислить расстояние между 2-мя точками.
Вот то что набросал http://codepen.io/dmuradz/pen/myZEYq  
Расстояние выводится, но расстояния полученные моим скриптом с теми которые я получаю тут https://maps.yandex.ru/?rtext=  отличаются. Подскажите что я не так делаю.
Спасибо.

3 комментария
маршрутизация,API 2.1,расчёт расстояния,геокодирование
Расстояние до ближайшей станции метро по дороге.
info@kingw.ru
24 марта 2015, 13:31

Добрый день.

Сделал определение до ближайшей станции метро. Работает хорошо, но определяет по прямой, а надо по дороге не подскажите как?

 Вот мой код где определяется по прямой http://jsfiddle.net/0bLvt3tf/

3 комментария
маршрутизация,API 2.1,расчёт расстояния,геокодирование
Функция вычисления расстояний между городами не для js api (матрица расстояний)
cargo8.com
4 февраля 2015, 16:48

Добрый день. Подскажите есть ли данная функция в api yandex maps, аналог гугловской матрицы расстояний(https://developers.google.com/maps/documentation/distancematrix/?hl=ru)  и если есть, то еще вопрос, какие лимиты на запросы в сутки? 

1 комментарий
расчёт расстояния
Длина линии с множеством точек.
unifot2020
5 сентября 2014, 11:56

Всем здравствуйте! Прокладываю линию через множество точек. А как подсчитать расстояние от первой точки до последней?

2 комментария
API 2.1,расчёт расстояния,ломаная
Содержимое полученного адреса и полученного растояния
unifot2020
6 августа 2014, 05:29

Здравствуйте! Делаю по примеру вот этой карты для расчета стоимости доставки http://www.drova47.ru/calculator.html свою похожую карту. . В нее я добавил функцию для получения дистанции в переменную. Мне нужно передать значения полученного адреса(var address) и расстояния (var distance) далее в файл PHP. Однако в перемнной var address адрес завернут еще и в html код, а в перемнной var distance помимо полученного расстояния есть еще и &#160;км (например 14&#160;км). Как получить чистые значения? И еще как заменить функцию отрисовки маршрута на функцию отрисовки простой прямой линии до точки доставки?

 

var DELIVERY_TARIF = 30,
    MINIMUM_COST = 1000;
ymaps.ready(function() {
    var center = [56.030691, 92.932553],
        map = new ymaps.Map('YMapsID', {
            center: center,
            zoom: 11.8,
            type: 'yandex#map',
            behaviors: ['scrollZoom']
        });
    calculator = new DeliveryCalculator(map, center);
    var search = new ymaps.control.SearchControl({
        useMapBounds: true,
        noCentering: true,
        noPlacemark: true
    });
    map.controls.add('mapTools');
    map.controls.add('zoomControl');
    map.controls.add('typeSelector');
    map.controls.add(search, {
        right: 5,
        top: 5
    });
    search.events.add("resultselect", function(e) {
        var results = search.getResultsArray(),
            selected = e.get('resultIndex'),
            point = results[selected].geometry.getCoordinates();
        map.events.fire('click', new ymaps.Event({
            coordPosition: point
        }));
    });
});
function DeliveryCalculator(map, finish) {
    this._map = map;
    this._start = null;
    this._finish = new ymaps.Placemark([56.018217, 93.03714], {
        hintContent: 'Водолей',
        balloonContent: 'ул. Глинки, 37 "г"'
    }, {
        iconImageHref: 'http://pion24.ru/favicon.ico',
        iconImageSize: [20, 20],
        iconImageOffset: [0, -0]
    });
    this._start.balloon.open();
    this._route = null;
    map.events.add('click', this._onStartChanged, this);
    map.geoObjects.add(this._finish);
}
var ptp = DeliveryCalculator.prototype;
ptp._onStartChanged = function(e) {
    var position = e.get('coordPosition');
    if (this._start) {
        position && this._start.geometry.setCoordinates(position);
    } else {
        this._start = new ymaps.Placemark(position, {
            draggable: true
        });
        this._start.events.add('dragend', this._onStartChanged, this);
        this._map.geoObjects.add(this._start);
    }
    this.getDirections();
};
ptp.getDirections = function() {
    var self = this,
        start = this._start.geometry.getCoordinates(),
        finish = this._finish.geometry.getCoordinates();
    var distance = (ymaps.formatter.distance(ymaps.coordSystem.geo.getDistance(start, finish)));
    this._route && this._map.geoObjects.remove(this._route);
    ymaps.geocode(start).then(function(geocode) {
        var address = geocode.geoObjects.get(0) && geocode.geoObjects.get(0).properties.get("balloonContentBody");
        $('form_address').value = address;
        $('form_distance').value = distance;
        ymaps.route([start, finish]).then(function(router) {
            var distance = Math.round(router.getLength() / 1000);
            message = 'Расстояние доставки дров: ' + distance + 'км.
' + 'Стоимость доставки "Камазом"';
            self._route = router.getPaths();
            self._route.options.set({
                strokeWidth: 5,
                strokeColor: '0000ffff',
                opacity: 0.5
            });
            self._map.geoObjects.add(self._route);
            self._start.properties.set("balloonContentBody", address + message.replace(self.calculate(distance)));
            self._start.balloon.open();
        });
    });
};
ptp.calculate = function(len) {
    var cost = len * DELIVERY_TARIF;
    return cost < MINIMUM_COST && MINIMUM_COST || cost;
};

 

2 комментария
маршрутизация,API 2.0,расчёт расстояния,геокодирование
Рассчет расстояния
Удалённый пользователь
12 марта 2014, 10:32

Возможно ли по заранее проложенному маршруту, скажем с 5 остановками,
сделать расчет карты по координатам объекта в настоящий момент, если он находится между остановками,
например вычислить оставшееся расстояние. Заранее спасибо

5 комментариев
API 2.0,маршрутизация,пользовательское соглашение,расчёт расстояния
Возможно ли это? и если да, то как?
Super-poopeer
18 февраля 2014, 21:10
Описание проблемы: на нашем сервере база (индентификатор и координаты).
От клиента приходят координаты его место нахождения. Из базы выбираются записи, удовлетворяющие условию - линейное растояние от них до клиента <= R.
По полученным записям неоходимо расчитать путь от них до клиента и N (количество) записей с минимиальным путем отослать клиенту.

Загвоздка в расчете заключается в следующем: как расчитать путь от координат из базы до клиента (на сервере) и учесть возможность обращения на сервер нескольких клиентов одновременно.

2 комментария
маршрутизация,координаты,расчёт расстояния
нахождение кратчайшего пути между точками
Удалённый пользователь
2 февраля 2014, 22:32

требуется полное описание метода!!!

HELP

4 комментария
API 2.0,расчёт расстояния
А->B, B->A - разные расстояния.API 2.0-stable
rodogor46rus
11 декабря 2013, 09:48

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

Используется API 2.0-stable версия.

Расчитываем расстояние между двумя объектами, используя ymaps.route

Расчитываем расстояние "Россия, Курск~Россия, Москва". Смотрим расстояние - 522.38999999999999.

Рассчитываем расстояние "Россия, Москва~Россия, Курск". Смотрим расстояние - 520.41999999999996.

Оно понятно, что назад всегда быстрее, но если использовать данные для расчёта стоимости перевозки, то стоимость получается разная и будет весьма справедливо, если пользователи будут спрашивать "а почему так?".

С другими городами бывают аналогичные ситуации, а погрешности различаются.


Не подскажете, как обойти данную проблему ? Может быть следует задавать координаты объектов, а не их адреса ?


Я не использую API "на прямую", но приведу ссылки для этих запросов, этого будет достаточно, что бы увидеть разницу:

Курск - Москва http://api-maps.yandex.ru/services/route/1.1/route.xml?callback=id_1386739018463374826&lang=ru_RU&rll=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%2C%20%D0%9A%D1%83%D1%80%D1%81%D0%BA~%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%2C%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&sco=latlong

Москва - Курск http://api-maps.yandex.ru/services/route/1.1/route.xml?callback=id_1386739018463374830&lang=ru_RU&rll=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%2C%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0~%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%2C%20%D0%9A%D1%83%D1%80%D1%81%D0%BA&sco=latlong

4 комментария
маршрутизация,расчёт расстояния
ICoordSystem eventloop or emitter?
sh.chelios
18 ноября 2013, 15:25

Доброго всем времени суток.

Интересует момент данный метод  ymaps.coordSystem.geo.getDistance интерфейса coordSystem.geo, 

Имеет ли какой нибудь обработчик событий по типу Then или On?   Интересуюсь с целью ассинхронного запроса на выявление нескольких расстояний.

 

Так же интересует разница в выходных данных с router.route.getLength() 

6 комментариев
маршрутизация,API 2.0,расчёт расстояния
Расчет расстояния от точки до множества объектов
asergiychuk
26 сентября 2013, 17:30

Доброго времени суток. Есть задачька и нужен совет в ее реализации.

Есть координаты места расположения пользователя. На карту выводиться множество кафе и ресторанов. В информационной панели дублируються все точки которые нанесены на карту, описание, фото и в то же время нужно выводить растояние к ним. Одновременно может выводиться свыше 500 элементов. Для начала можно искать для ближайших 10-20 объектов их растояние, но даже в этом случаи смущает, что нужно делать 10-20 запросов на прокладку маршрута.

Есть ли способ задать точку на карте и все точки к которым нужно расчитать растояние и выполнить это одним запросом, маршрут при этом прокладывать не обязательно?

7 комментариев
маршрутизация,API 2.0,расчёт расстояния
geometry.getClosest как найти ближайшую точку по маршруту.
40 nedel
16 сентября 2013, 00:35

Привет, помогите разобраться. 

 

Я построил маршрут который проходит как внутри полигона так и за ним. 

Мне нужно посчитать расстояние по маршруту за пределами полигона.

Я делаю это так 

var DISTANCE_FROM_TOWN = Math.round( self._cityPolygon.geometry.getClosest(start).distance /1000);

Но оно считает ближайшую точку не по маршруту а напрямую, как посчитать именно по маршруту?

 

Благодарен за помощь.

1 комментарий
маршрутизация,API 2.0,расчёт расстояния
Расчёт расстояния
Walter White
31 августа 2013, 21:46

Здравствуйте. Мне интересно будет узнать как определить расстояние от точки А к точки Я (через Б, В, Г и т.д.).

Можно ли это сделать через АПИ Я.К ?

И еще, как вот этот метод считает расстояние? Просто напрямую от точки А к Б, или по дороге ?

1 комментарий
API 2.0,расчёт расстояния
Определение направления (шоссе)
antontotsky
1 августа 2013, 11:34

Всем привет!

Перейду сразу к делу, нужно по клику на карте определять направление, а именно шоссе (Волоколамское, Ленинградское, Ярославское и др.)

Если это делать через маршруты, то не всегда они проходят по шоссе, если перехватывать по отрезкам

Я думал создавать полигоны-многоугольники и обрабатывать клики по ним

Есть ещё вариант создать линию вдоль шоссе и искать после клика ближайшую точку по всем линям и сравнивать расстояние

Может кто-то уже такое делал и поделится опытом?

Заранее спасибо!

7 комментариев
API 2.0,расчёт расстояния,ломаная
Расстояние от точек до маршрута
Владимир Б.
8 июля 2013, 13:18

Добрый день!

Никак не могу решить задачу. Есть маршрут, например от Москвы до Владивостока. По заданному маршруту есть около 100 точек с разной дистанцией от маршрута.  Необходимо открыть все точки, которые расположены на 10км от маршрута. Смотрю в сторону getClosestTo(). Может кто-нибудь подсказать верное направление в данной задаче? =\

 

Также интересует вопрос, можно ли в яндекс карте определить платные трассы и в построении маршрута сделать объезд этой трассы? Ответ на этот вопрос нигде не нашел =\

1 комментарий
маршрутизация,API 2.0,расчёт расстояния
Два inputa => определить координаты и расстояние
abcgroop
25 июня 2013, 00:45

Не могу ни как сообразить как сделать, есть два inputa куда вводятся адреса, мне необходимо записать в базу координаты обоих адресов и расстояние между этими адресами.

Если можно поподробнее, только начал изучать api карт...

1 комментарий
маршрутизация,API 2.0,расчёт расстояния,геокодирование
Расчет расстояния
Удалённый пользователь
14 июня 2013, 20:14

Добрый день, коллеги.

 

У меня стоит задача расчитать расстояние между двумя точками(нормальное, на машине, по-дороге, а не просто использовав алгоритм определения расстояния между точками). Хотелось бы сделать это через yandex api, так как везде используется их API.

 

Но из коробки подобного я не нашел, только через JS API.

 

Внимание, вопрос:

http://api-maps.yandex.ru/services/route/1.1/route.xml?callback=id_13712251886665038377&lang=ru_RU&rll=55.75177544445922,37.63001280205281~55.760094,37.648968&sco=latlong

 

могу ли я использовать данные урлы без нарушения чего-либо для того, чтобы посчитать нужное мне расстояние?  Этот линк генерирует JS API.

 

Либо есть ли другие способы, более правильные?

5 комментариев
маршрутизация,API 2.0,расчёт расстояния