1

我有超过 600 个kml文件要加载到一个谷歌地图中。最初我尝试使用KmlLayer(),但由于文件数量多,它不起作用kml,所以我发现GeoXML3,它工作得非常好。

现在我需要为使用 GeoXML3 创建的每个多边形检索路径坐标。在这里我找到了getPaths()似乎正是我正在寻找的方法,但它不起作用,因为现在我不使用类创建多边形Polygon而是使用类geoxml3

for (i=0; i < controlli.length; i++)
{   
    appo = kmlurl + controlli[i].id + ".kml";
    appo = appo.replace(" ", '_');
    area[controlli[i].id] = new geoXML3.parser({
        map: map,
        zoom: false,
    });
    area[controlli[i].id].parse(appo);
    //here I would like to do something like: 'area[controlli[i].id].getPaths()'
}

我怎样才能做到这一点?

4

1 回答 1

2

geoXml3 创建的代表 KML 多边形的 google.maps.Polygon 对象可以通过 2 种方式访问​​:

  1. area[controlli[0].id].docs[0].placemarks[0].polygon.getPath()

工作jsfiddle

  1. area[controlli[0].id].docs[0].gpolygons[0].getPath()

工作jsfiddle

其中 geoXml 是对解析器对象(您的area[controlli[i].id])的引用,而 i 是对 KML 中地标(或多边形)的顺序引用)。

如果您在异步加载的 KML 文件上使用它,则需要等待parsed事件,或者使用afterParse函数中的数据。

于 2015-05-04T20:12:28.407 回答