Имя: Пароль:
IT
Веб-мастеринг
Яндекс карты. Построение линии.
0 Jimmo910
 
15.01.20
16:53
Народ. Наверника кто-то делал...
Есть массив координат
[54.5868082756026,29.3774635490419],
[51.5723517764561,19.7469669911982],
[56.5851226746375,35.7324343548145],
[44.5878309713286,29.714940829601],
[14.3419666759655,49.7028799716442],
...................................

Есть яндекс карта. На которую нужно нанести линию по этим координатам. Координаты постоянно разные прилетают через веб сервис с другова сервера.
Не могу разобраться как сделать линию с 'n' точке...  ?????

Вот код где получаю коодинаты:

function sendAjaxForm(ajax_form, url) {
    
    jQuery.ajax({
        url:     url, //url страницы (action_ajax_form.php)
        type:     "POST", //метод отправки
        dataType: "html", //формат данных
        data: jQuery("#"+ajax_form).serialize(),  // Сеарилизуем объект
        
        success: function(response) { //Данные отправлены успешно
            
            result = jQuery.parseJSON(response);
                        
            //цикл который обойдент массив координат
                        var mas = Array();
            var coordinat='';
            for (var i = 0; i < result.length; i++) {
                var zap = '';
                zap = (i == result.length-1) ? ' ' : ', ';
                mas[i] = new ymaps.geometry.Point([result[i].shirot, result[i].dolg]);
                coordinat += '['+result[i].shirot+', '+result[i].dolg+']'+zap;
            }
            
            myMap = new ymaps.Map("map", {
                   center: [22.2456441607053, 49.6421453568540],
                   zoom: 11
                });
            
            
            polyline = new ymaps.Polyline(mas);  ///////----- КАК СУДА ПЕРЕДАТЬ БОЛЬШЕ КОЛИЧЕСТВО ТОЧКЕ??????  ------------////////////////////
            myMap.geoObjects.add(polyline);
            
            myMap.setBounds(polyline.geometry.getBounds());//позицианируемся на линиях
            myMap.container.enterFullscreen();//открываем карту на весь экран
            
            
        },
        error: function(response) { // Данные не отправлены
            alert('Ошибка. Данные не отправленны.');
        }
    });
    
}
1 Garikk
 
15.01.20
17:00
(0) БОЛЬШЕ --- это сколько? у вас туда и так массив точек передается
==
shirot... dolgot....рукалицо
2 Кодер
 
15.01.20
17:32
Узнайте цену API яндекса. Недавно они поменяли цену, дорисовав нулей, экстренно меняли завязанные на них инструменты. Можно глянуть OSM.
3 Jimmo910
 
15.01.20
17:55
(1) Массив-то передается, но не работает. В этом и проблема, что массив вроде как передается но работать не хочет....
4 pechkin
 
15.01.20
17:57
нужно
mas.push(new ymaps.geometry.Point([result[i].shirot, result[i].dolg]))
5 pechkin
 
15.01.20
17:59
а еще лучше
mas = result.map(point => new ymaps.geometry.Point(point.shirot, point.dolg]))
6 Jimmo910
 
15.01.20
18:08
(4) не работает. [url=https://radikal.ru][img]https://b.radikal.ru/b03/2001/9f/7267be7e8d48.png[/img][/url]

Не факт что "new ymaps.geometry.Point" вообще нужно....
7 pechkin
 
15.01.20
18:14
var polyline = new ymaps.Polyline([[-80, 60], [-90, 50], [-60, 40], [-80,
60]]
https://tech.yandex.ru/maps/jsapi/doc/2.1/ref/reference/Polyline-docpage/
массив масивво нужен
mas = result.map( {shirot, dolg} => [shirot, dolg])
8 Jimmo910
 
15.01.20
18:23
(7) так не работает... https://c.radikal.ru/c38/2001/37/312479053eb6.png
9 pechkin
 
15.01.20
18:24
(8) цикла не нужно
10 pechkin
 
15.01.20
18:24
вместо всего твоего текста одна моя строка
11 Jimmo910
 
15.01.20
18:29
(10) все равно. пишет ошибку "Malformed arrow function parameter list" и номер этой строки (mas = result.map( {shirot, dolg} => [shirot, dolg]);)
12 pechkin
 
15.01.20
18:32
тогда полный вариант
mas = result.map( function(point){ return [point.shirot, pointdolg]});
13 Jimmo910
 
15.01.20
18:34
(12) СПАСИБО!!!! ОГРОМНЕЙШЕЕ!