2013-05-21 64 views
0

我有一個KML多個地標,例如以下文件:使一些地標與谷歌地圖API V3可見

<Placemark> 
    <name>00550M</name> 
    <description></description> 
    <styleUrl>#550M</styleUrl> 
    <Polygon> 
    <outerBoundaryIs> 
     <LinearRing> 
     <tessellate>1</tessellate> 
     <coordinates> 
      -019.2041,63.4130 
      -013.2722,57.0138 
      004.2309,52.4405 
      001.1318,49.5607 
      -021.0657,55.3650 
      -019.2041,63.4130 
      </coordinates> 
     </LinearRing> 
    </outerBoundaryIs> 
    </Polygon> 
</Placemark> 

使用Google地球插件中我可以把填充與標數組:

if ('getFeatures' in top.mykml) { 
var firstChild = top.mykml.getFeatures().getFirstChild(); 
while(firstChild !== null){          
    top.myObjects.push(firstChild); 
    firstChild = firstChild.getNextSibling();   
    }  
} 

,並使其可見或不可見:

for (var i = 0; i < aLen; i++){ 
    aName = top.myObjects[i].getName();   
    aFL = (aName.substring(2, 5));  
    if (aFL == '200'){ 
    top.myObjects[i].setVisibility(true);    
    } 
} 

然而,getFeatures是不是在地圖可用, nd

if ('featureData' in top.mykml) 

返回false。

是否有可能實現我想要做的事情,如果是這樣的話。如果沒有,我猜每個地標都必須放在一個文件中。

謝謝。

回答

1

KmlLayer不允許您訪問地圖上的對象。

你,我能想到的兩個選項:

  1. 導入您的KML到FusionTables和使用查詢來顯示或隱藏的地標
  2. 使用第三方KML解析器像geoxml3geoxml-v3這使KML使用自帶谷歌地圖JavaScript API V3對象,並揭露那些讓您可以控制它們

example using geoxml3

+0

好的,非常感謝! –