如何记录图层要素上请求的坐标

时间:2015-07-15 12:46:18

标签: javascript arrays angularjs openlayers-3

我想在每次点击地图上的某个要素时记录坐标。我所做的是:

当我点击地图时,我会调用map.on('singleclick')函数并从返回的图层功能中获取featureInfo。返回的对象如下所示:

geometry: Object
coordinates: Array[1]
type: "MultiPolygon
geometry_name: "the_geom"
id: "Kreise.5"

坐标数组包含所需坐标。然后我调用一个函数来推动属性:layer,geometry_name和coordinates到几何数组。

var setGeometry = function (layer, geom, flatCoordinates) {
                var geometry = [];
                geometry.push([{
                    layer: layer,
                    geom: angular.uppercase(geom),
                    flatCoordinates: setFlatCoordinates(flatCoordinates)
                }]);
                console.log(geometry);                
            };

不幸的是,每当我点击地图并调用此函数时,它都不会向此数组添加新的几何对象,它只会覆盖旧属性。

我试图将这些属性推送到map.on('singleclick')函数中的本地数组,该函数将按预期工作,但我想要一个调用上述函数的解决方案。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

没关系,通过重新阅读这个问题,我注意到我应该在被调用函数之外声明几何数组。由于调用该函数将始终实例化一个新数组并覆盖旧数组。