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

标签 javascript arrays angularjs openlayers-3

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

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

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

其中坐标数组包含所需的坐标。然后我调用一个函数,将属性:图层、几何名称和坐标推送到几何数组。

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

不幸的是,每次我单击 map 并调用此函数时,它都不会向该数组添加新的几何对象,而只是覆盖旧的属性。

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

最佳答案

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

关于javascript - 如何记录图层要素上请求的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31430806/

相关文章:

javascript - 删除最后一个字符时光标返回到 contenteditable Div 的开头

javascript - 火力地堡 : Wait For Async and Push to an array

asp.net-mvc - Angular JS Put 方法与 ASP.NET MVC

angularjs - 双向绑定(bind)更新了哪些部分?

javascript - 降级的 Angular2 组件未在 Angular 1 内呈现

Google map 的 Javascript 事件处理

java - 字符串数组不起作用。编译器不交互

javascript - 根据该对象中其他两个属性的值获取 Javascript 对象属性的值

javascript - 旋转 JavaScript 数组

AngularJS错误: regeneratorRuntime is not defined with async function