1

有谁知道在创建地标并通过javascript将它们添加到谷歌地球地图时是否有办法为地标分配唯一ID?这是我用来创建和添加地标的代码示例:

    var icon = ge.createIcon('');
    icon.setHref('<url here>');
    var style = ge.createStyle('');
    style.getIconStyle().setIcon(icon);
    style.getIconStyle().setScale(0.65);

    var pm = ge.createPlacemark('');
    pm.setStyleSelector(style);
    pm.setName("Type1");  // <-- NEED ANOTHER METHOD (ex. pm.SetId('uniqueId'))

    var pmPoint = ge.createPoint('');
    pmPoint.setLatitude(35.859545);
    pmPoint.setLongitude(-92.388783);

    pm.setGeometry(pmPoint);
    ge.getFeatures().appendChild(pm);

-------------------------------------------------- ------------

我有多组要添加到地图的 KmlPlacemarks,我不想为每组分配一个唯一的名称以便能够删除它们(主要是因为我不希望名称显示在地图上)。我正在尝试使用以下(不完整的)代码块删除某些地标:

var children = ge.getFeatures().getChildNodes();
for(var i = 0; i < children.getLength(); i++) { 
    var child = children.item(i);
    if(child.getType() == 'KmlPlacemark') {
        if(... ??? ...) {  **// <-- don't want to use if(child.getName().indexOf('criteria') !== -1)**
            ge.getFeatures().removeChild(child);
        }
    }
}

-------------------------------------------------- ------------

有人知道实现此目的的另一种方法吗?我尝试使用 child.getUrl() 但这并没有返回任何我可以用来识别我想从地图中删除的 KmlPlacemarks 的东西......

或者也许有一种方法可以将地图上的名称可见性设置为 false?

提前致谢。

布兰登

4

1 回答 1

2

创建地标时

   var pm = ge.createPlacemark('');

使用它来设置它的'id'

   var pm = ge.createPlacemark('uniqueID');

那么当你想删除它时

   if(child.getType() == 'KmlPlacemark') {
    if(... ??? ...) {  **// <-- don't want to use if(child.getName().indexOf('criteria') !== -1)**
        ge.getFeatures().removeChild(child);
    }
}

变成

   if(child.getType() == 'KmlPlacemark') {
    if(child.getId()=='uniqueID')
        ge.getFeatures().removeChild(child);
    }
}
于 2012-06-10T01:42:58.523 回答