Клуб API Карт

Координаты для Polyline из XML

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

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

Делаю импорт координат из базы данных. В результате запроса получаю данные в XML, а дальше пытаюсь их вот так вставить:

 

var polyline = new YMaps.Polyline([
    $point= animation(num, type).start()
]);

Функция запроса:


function animation (num,type) {  
    jQuery.ajax({
        type: "POST",
        url: "index.php?id=153",
        data: { num: '35', type: '1' },
        dataType: "xml",
        success: function (data, textStatus) {
            text = data.getElementsByTagName("p");
            $point = text[0].textContent;
            alert($point);
            return($point)
       }
    })
}

 

При этом alert($point) выводит: new YMapsGeoPoint(60, 60), new YMapsGeoPoint(60, 60), но дальше ничего не происходит.

Можно ли как-то еще передать координаты для Polyline?

5 комментариев
В консоль ошибок javascript смотрели? Скорее всего там ошибка.

Расскажиет о решаемой задаче. Я попробую подсказать оптимальное решение.
Ни в Опере, ни в Firefox ошибок нет...
Разрабатываем туристическую карту, и нужно выводить на карту анимированные маршруты проезда. Для одного объекта анимация написана по примеру анимации проезда к офису Яндекса, но только на своих координатах для Polyline.
А вот теперь надо сделать подстановку координат для Polyline из базы.
Создавайте линию в теле success обработчика и будет вам то, что вы хотите.
Марат Дулин
28 января 2016, 06:40

Попробуйте так:


 



var polyline = new YMaps.Polyline();


animation(polyline, num, type);


function animation (polyline, num, type) {  


    jQuery.ajax({
        type: "POST",
        url: "index.php?id=153", 
        data: { num: '35', type: '1' },
        dataType: "xml", 
        success: function (data, textStatus) {
            text = data.getElementsByTagName("p");
            $point = text[0].textContent;
            polyline.setPoints(eval('([' + $point + '])'));
       }
    })
}

Первый параметр в конструкторе YMaps.Polyline является обязательным, т. е. лучше будет написать так:

var polyline = new YMaps.Polyline([]);