在Google Maps V3中获取GeoJSON数据图层的属性

时间:2015-01-07 02:38:28

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

将geoJSON文件作为数据层加载到Google Map时,如何访问数据层本身的属性?

我知道如何access the individual properties,如下例中的posts_here。我想要获得的是图层本身的属性 - 在此示例中为maxPosts

$.getJSON("http://example.com/posts/grid.json" + location.search, function (data) {
        grid = map_canvas.data.addGeoJson(data);
        map_canvas.data.setStyle(function(feature) {
        return /** @type {google.maps.Data.StyleOptions} */({
            strokeWeight: Math.log(feature.getProperty('posts_here')),
        });
    })
});

grid.json我加载的示例:

{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "Polygon",
                "coordinates": [
                    [
                        [-58,-35],
                        [-58,-34],
                        [-57,-34],
                        [-57,-35],
                        [-58,-35]
                    ]
                ]
            },
            "properties": {
                "posts_here": "177"
            }
        }
    ],
    "properties": {
        "maxPosts": "177"
    }
}

2 个答案:

答案 0 :(得分:5)

API仅解析FeatureCollection的features - 数组,当您想要访问其他属性时,您必须自己实现它。

基于给定的代码,它并不复杂,因为geoJson可以通过data - 回调中的$.getJSON作为对象访问,您可以通过

访问该属性
data.properties.maxPosts

答案 1 :(得分:0)

我相信您应该能够使用getFeatureById(id:number|string)来访问您从geoJSON添加的信息。