如何在没有事件监听器的情况下从功能获取属性? (event.feature)

时间:2016-06-16 15:14:36

标签: javascript json google-maps google-maps-api-3

如何在没有事件侦听器的情况下从图层(使用geoJSON加载)获取“要素”数据?

这是通常的方式,效果很好:

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

但现在我想从数据对象“layer1”中获取值。

我已经尝试了这个:

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

我加载geoJSON的方式

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

json的内容

这是一个简短的问题顺便说一下:如果我的json中有更多的功能(例如多边形),我可以将这些值设置为操纵(例如切换可见性)吗?

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

1 个答案:

答案 0 :(得分:1)

要获取google.maps.Data图层的所有功能,请使用:

  

forEach(回调:函数(Data.Feature))

     

返回值:无

     

重复调用给定的函数,将集合中的一个特性传递给每个调用的函数。通过功能的迭代顺序是未定义的。

或获取单个功能(如果您知道Id):

  

<强> getFeatureById(ID:数|字符串)

     

返回值:Data.Feature | undefined

     

如果集合中存在特征,则返回具有给定ID的要素。否则返回undefined。

     

请注意ID 1234和1234&#39;是等价的。两者都可用于查找相同的功能。