Клуб API Карт

Как программно изменить цвет ломаной, загруженной из XML?

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

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

 

Содержимое карты загружаю из XML-файла.

В нём есть ломаные типа

 

 

<ymaps:GeoObject>

<gml:name>Ломаная 1</gml:name>

<gml:description>Ломаная 1</gml:description>

<gml:LineString>

<gml:pos>29.950488 57.503435</gml:pos>

<gml:pos>29.953784 57.502307</gml:pos>

<gml:pos>29.957946 57.500896</gml:pos>

</gml:LineString>
</ymaps:GeoObject>

<gml:name>Ломаная 2</gml:name>

<gml:description>Ломаная 2</gml:description>

<gml:LineString>

<gml:pos>29.962255 57.511339</gml:pos>

<gml:pos>29.961831 57.511796</gml:pos>

 

<gml:pos>29.957946 57.500896</gml:pos>

</gml:LineString>
</ymaps:GeoObject>
...

 

Каким образом из js добраться до ломаной и изменить, допустим, её цвет?
Спасибо!
9 комментариев

Вы можете прописать цвет линии прямо в YMapsML

Либо при получении 

 

ymaps.geoXml.load('http://_your_.xml') .then(function (res) { res.geoObjects.options.set({ "strokeColor" : "0066ffff"});

 

Юрий Казаков
28 января 2016, 03:55

XML-файл с данными довольно большой. Задача: 1) загрузить один раз файл с ломаными, а потом  2) изменять цвет некоторых ломаных по таймеру в джава-скрипте. Можно, конечно, раз в 5 секунд регенерить новый xml-файл на сервере и загружать, но это как-то уж очень не по-людски получается. Можно ли как-то заменять цвет, обращаясь к массиву, уже загруженному из XML-файла?

res.geoObjects это и есть коллекция и вы можете использовать ее методы чтобы получать доступ к ее элементам и менять их

 

Юрий Казаков
28 января 2016, 03:55

Пытаюсь сделать:

var iterator = map.geoObjects.getIterator(), object;

while(object = iterator.getNext()){

  alert(object.geometry.getType);

}

для коллекции, загруженной из XML, в результате получаю на первом же проходе цикла: Cannot read property 'getType' of null. Что это может быть?

это может быть другая коллекция

Коллекции могут содержать коллекции

Юрий Казаков
28 января 2016, 03:55

Спасибо, всё получилось. Единственное, какая-то странная сетка появляется при передвижении карты мышью: http://drmorgue.ru/gml/str.png (белого цвета).

 

Единственное, какая-то странная сетка появляется при передвижении карты мышью: http://drmorgue.ru/gml/str.png (белого цвета).

Какой броузер?

дай ссылку

Юрий Казаков
28 января 2016, 03:55

Гугл Хром, ссылки нет, т.к. в локальной сети скрипт.

Если на странице оставить только код карты (убрать другие скрипты и стили) эти полоски видны?

выложи весь код карты