2016-06-16 12 views
0

如何從沒有事件監聽器的圖層(加載geoJSON)獲取「特徵」數據?如何從沒有事件監聽器的功能獲取屬性? (event.feature)

這就是通常的方式,其工作正常:

layer1.addListener('mouseover', function (event) { 
    console.log(event.feature.getProperty('description')); 
} 

,但現在我想從數據對象「層1」的值。

我想已經是這個:

layer1.getProperty('description') 
layer1.feature.getProperty('description') 

我如何加載GeoJSON的

var layer1 = new google.maps.Data(); 
layer1 = loadGeoJson('https://googledrive.com/host/MYFILE') 

JSON的內容

這裏順便說一句簡短問題的方式:如果我有更多的特色res(例如多邊形)在我的JSON,我可以得到這個值來操縱(例如,切換可見度)嗎?

{ 
    "type": "FeatureCollection", 
    "features": [ 
     { 
      "type": "Feature", 
      "geometry": { 
       "type": "Point", 
       "coordinates": [ 
        12.3456789, 
        01.2345678, 
        0 
       ] 
      }, 
      "properties": { 
       "name": "Test Polygon", 
       "description": "My Test Description" 
      } 
     } 
    ] 
} 

回答

1

要獲得的google.maps.Data層,使用所有的功能:

的forEach(回調:函數(Data.Feature))

返回值:無

重複調用給定的函數,將集合中的一個特性傳遞給每次調用時的函數。迭代遍歷要素的順序是未定義的。

,或者得到一個單一的功能(如果你知道ID):

getFeatureById(ID:數字|字符串)

返回值:Data.Feature |未定義

返回給定ID的特徵(如果它存在於集合中)。否則返回undefined。

請注意,ID 1234和'1234'是等效的。要麼可以用來查找相同的功能。

+0

謝謝你m8,工作正常。 – kaito