javascript - Arcgis Esri map : Collect pictureMarkerSymbols info on area select

标签 javascript json arcgis esri

我正在尝试创建一个 map ,我可以在其中创建一个选择区域,并获取其下所有图形指针的信息,我尝试使用以下示例进行修改,但它们使用的是网络服务和查询,我想要它json 或数组。

这就是例子 http://developers.arcgis.com/javascript/samples/graphics_extent_query/我关注了

我想在选择后获得指针的电子邮件地址。这是一把 fiddle http://bit.ly/1jwLazp开始。

最佳答案

我将您的 fiddle 与示例相结合,生成了以下内容:

https://jsfiddle.net/gary4620/t9h513c7/17/

var map;
var s;
var gl;
var highlightSymbol;

require([
    "esri/map",
    "esri/geometry/Point",
    "esri/symbols/SimpleMarkerSymbol",
    "esri/graphic",
    "esri/layers/GraphicsLayer",
    "esri/toolbars/draw",
    "esri/symbols/SimpleMarkerSymbol",
    "esri/InfoTemplate",
    "dojo/domReady!"], function (
Map, Point, SimpleMarkerSymbol, Graphic, GraphicsLayer, Draw, SimpleMarkerSymbol, InfoTemplate) {
    function initToolbar(map) {
        var tb = new Draw(map);
        tb.on("draw-end", findPointsInExtent);
        tb.activate(Draw.EXTENT);
    }

    function findPointsInExtent(result) {
        var extent = result.geometry;
        var results = [];
        require(["dojo/_base/array"], function (array) {
            array.forEach(gl.graphics, function (graphic) {
                if (extent.contains(graphic.geometry)) {
                    graphic.setSymbol(highlightSymbol);
                    results.push(graphic.getContent());
                }
                //else if point was previously highlighted, reset its symbology
                else if (graphic.symbol == highlightSymbol) {
                    graphic.setSymbol(s);
                }
            });

            //TODO use results as needed; here we just print to console
            console.log("There are " + results.length + " results:");
            console.log(results.join(""));
        });
    }

    map = new Map("map", {
        basemap: "streets",
        center: [-88.21, 42.21],
        zoom: 10
    });
    map.on("load", function () {
        var content = 'email@address.com';
        gl = new GraphicsLayer();
        var p = new Point(-88.380801, 42.10560);
        s = new SimpleMarkerSymbol().setSize(20);
        var g = new Graphic(p, s, {
            'title': 'Title',
            'content': content
        }, new InfoTemplate('${title}', '${content}'));
        gl.add(g);
        map.addLayer(gl);

        initToolbar(this);
    });
    highlightSymbol = new SimpleMarkerSymbol().setColor(new dojo.Color([255,0,0]));
});

关于javascript - Arcgis Esri map : Collect pictureMarkerSymbols info on area select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33209466/

相关文章:

c# - 用C#实现Hoey Shamos算法

c# - 从代码和网站调用Web API

javascript - 在 NestJS 中测试解析器

javascript - 滑动到上一篇/下一篇文章 URL?

javascript - 如何访问http响应中的嵌套数组和对象

python - 光栅到 ASCII - 在 Python 中添加处理多个文件的代码片段

java - Arcgis map : PictureMarkerSymbol

javascript - 使用 javascript 更改 javascript 代码

java - 为什么响应实体返回带有 setter/getter 名称而不是数据成员名称的 json

python - Redis blpop 有时返回元组,有时不返回?