arcgisapi4.x和3.x实现属性查询,随机播放

本文介绍了一种使用ArcGIS API进行属性查询的方法,并通过随机选择地名进行查询,然后在地图上高亮显示查询结果。该过程涉及创建查询任务、设置查询条件以及处理查询结果,同时展示了如何为查询到的图形设置符号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

属性查询

4.x的

require([
"esri/tasks/QueryTask",
"esri/tasks/support/Query",
], function ( QueryTask, Query) {
var queryTask = new QueryTask({
    //你的动态服务或者要素服务。需加图层编号,query只能一次查一个图层
    url: "的动态服务或者要素服务/MapServer/1"
});
var query = new Query({
    returnGeometry: true,
    outFields: ["*"],
});
var nameRandom = ["坦洲镇", "古镇镇", "神湾镇", "三乡镇", "五桂山", "板芙镇", "大涌镇", "南朗镇", "横栏镇", "火炬开发区", "翠亨新区",
    "民众镇", "小榄镇", "三角镇", "南头镇", "东凤镇", "黄圃镇"
]
var resultsLayer = new GraphicsLayer();
resultsLayer.maxScale = 72223;
var timer = setInterval(function () {

    var a = Math.floor(Math.random() * 19);
    var b = nameRandom[a];
    var str = "name = " + "'" + b + "'";
    query.where = str;
    queryTask.execute(query).then(function (queryResult) {
        console.log(queryResult.features);

        resultsLayer.removeAll();

        var peakResults = queryResult.features.map(function (feature) {

            feature.symbol = {
                type: "simple-fill", // autocasts as new SimpleFillSymbol()
                color: [0, 255, 255, 0.5],
                style: "solid",
                outline: { // autocasts as new SimpleLineSymbol()
                    color: [0, 255, 255, 1],
                    width: 3
                }
            };
            // feature.popupTemplate = popupTemplate;
            return feature;
        });
        resultsLayer.addMany(peakResults);
    });
    // debugger
}, 3000)

3.x

//创建线符号
var lineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, new dojo.Color([
        0, 255, 255
    ]),
    3);
//创建面符号
var fill = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
    new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
        new Color([0, 255, 255]), 2), new Color([255, 255, 0, 0.5]));
var nameRandom = ["坦洲镇", "古镇镇", "神湾镇", "三乡镇", "五桂山", "板芙镇", "大涌镇", "南朗镇", "横栏镇", "火炬开发区", "翠亨新区",
    "民众镇", "小榄镇", "三角镇", "南头镇", "东凤镇", "黄圃镇"
]
var mapChange = function (showQueryResult) {
    var a = Math.floor(Math.random() * 19);
    var b = nameRandom[a];
    //查询条件,类似于sql语句的where子句
    var str = "name = " + "'" + b + "'"
    //定义查询对象
    var queryTask = new QueryTask(
        "http://10.35.11.159:6080/arcgis/rest/services/Test/zsxz_0910/MapServer/0"
    );
    //定义查询参数对象
    var query = new Query();
    //查询条件,类似于sql语句的where子句
    query.where = str;
    query.outFields = ["*"];
    //是否返回几何形状
    query.returnGeometry = true;
    //执行属性查询
    queryTask.execute(query, showQueryResult);
}

//给属性查询按钮添加click事件
// on(dom.byId("Btn"), "click", function (e) {
var timer = setInterval(function () {
    mapChange(showQueryResult)
    //属性查询完成之后,用showQueryResult来处理返回的结果
    function showQueryResult(queryResult) {
        map.graphics.clear();

        if (queryResult.features.length == 0) {
            console.log("未查到相关信息")
            console.log(0)
            // dom.byId("divShowResult").innerHTML = "";
            return;
        }
        // var htmls = "";
        if (queryResult.features.length >= 1) {
            // htmls = htmls + "<table style=\"width: 100%\">";
            // htmls = htmls + "<tr><td>名称</td></tr>";
            for (var i = 0; i < queryResult.features.length; i++) {
                //获得图形graphic
                var graphic = queryResult.features[i];
                //赋予相应的符号
                graphic.setSymbol(fill);
                //将graphic添加到地图中,从而实现高亮效果
                map.graphics.add(graphic);
                console.log("查询成功")
            }
        }
    }
}, 3000)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值