Клуб API Карт

Число вершин загружаемого вектора

vshameev
9 мая 2011, 09:06

Загружается вектор из файла XML

var ml = new YMaps.YMapsML(adresxml);

Количество строк с координатной информацией в нем порядка 600.

Добираюсь до массива вершин

                           var coordpath = ml.get(0).get(0).getCoordPath(

Пытаюсь получить количество вершин

var nv = coordpath.getNumVertices(

И получаю значение 107.

Полилиния, построенная по coordpath, отрисовывается.

 

Что сделано не так?

Координаты в файле могут повторяться. Влияет ли это на считывание?

Что происходит, когда среди координат появляется полностью нулевая (0.0, 0.0)?



4 комментария
Подписаться на комментарии к посту

Ссылка на страницу была бы очень кстати

сложно быть телепатом

у вас там одна полилиния?

Вот текст

 

              var ml = new YMaps.YMapsML(adresxml);
             
             YMaps.Events.observe(ml, ml.Events.Load, function ()
                     {
                        if (this.length())
                        {
                           var coordpath = this.get(0).get(0).getCoordPath();
                           if(coordpath)
                           {
                             var nv = coordpath.getNumVertices();
                             alert ("Вершин "+nv);
                             if(nv > 0)
                             {
                               if( nv < 2)
                               {
                                  var vert = coordpath.getVertices();
                                  var placemark = new YMaps.Placemark(vert(0), {style: "default#carIcon"});
                                  placemark.name = this.get(0).name;
                                  map.addOverlay(placemark);
                                  map.setCenter(vert(0));
                               }
                               else
                               {
                                 var pl = new YMaps.Polyline(coordpath);
                                 pl.description = "Вершин "+nv;
                                 pl.setStyle("example#carLine");
                                 map.addOverlay(pl); 
                                 map.setCenter(pl.getPoint(0));
                               }
                             }
                           }
                        }
                    }
                 );

Вот содержимое файла

http://maps.yandex.ru/ymaps/1.x" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maps.yandex.ru/schemas/ymaps/1.x/ymaps.xsd">
   
        AIRMRS01
       
           
               
                    37.575360 55.705687
                    37.575360 55.705687
                    37.575362 55.705496
                    37.575362 55.705496
                    37.575145 55.705278
                    37.575145 55.705278
                    37.575145 55.705278

.....


               
           
       
   

И число nv получается меньше числа строк в файле

да там есть оптимизация вершин.

идущие подряд одинаковые вершины превратятся в одну

 

спасибо