ArcGIS API for JavaScript为什么有的字段可以显示有的却不能显示

版权声明:转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/100150910

 

由ESRI官网得到代码如下:

<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>测试ArcGIS API for JavaScript</title>
    <style>
        html,
        body,
        #viewDiv {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
        }
    </style>
    <link rel="stylesheet" href="https://js.arcgis.com/4.12/esri/css/main.css">
    <script src="https://js.arcgis.com/4.12/"></script>
    <script>
        require([
            "esri/Map",
            "esri/views/MapView",
            "esri/layers/FeatureLayer"
        ], function (Map, MapView, FeatureLayer) {
            var map = new Map({
                basemap: "topo-vector"
            });

            var view = new MapView({
                container: "viewDiv",
                map: map,
                center: [-118.80543, 34.02700],
                zoom: 12
            });
            var trailheadsRenderer = {
                type: "simple",
                symbol: {
                    type: "picture-marker",
                    url: "http://static.arcgis.com/images/Symbols/NPS/npsPictograph_0231b.png",
                    width: "18px",
                    height: "18px"
                }
            };
            var trailheadsLabels = {
                symbol: {
                    type: "text",
                    color: "#FFFFFF",
                    haloColor: "#5E8D74",
                    haloSize: "2px",
                    font: {
                        size: "12px",
                        family: "Noto Sans",
                        style: "italic",
                        weight: "normal"
                    }
                },
                labelPlacement: "above-center",
                labelExpressionInfo: {
                    expression: "$feature.TRL_NAME"
                }
            };
            var trailheadsLayer = new FeatureLayer({
                url: "https://services3.arcgis.com/GVgbJbqm8hXASVYi/ArcGIS/rest/services/Trailheads/FeatureServer/0",
                renderer: trailheadsRenderer,
                labelingInfo: [trailheadsLabels]
            });
            map.add(trailheadsLayer);
        });
    </script>
</head>

<body>
    <div id="viewDiv"></div>
</body>

</html>

这段代码是二维地图上添加一个点层,此点层用图片符号化,并加上标注,标注字段使用的是名字,效果如下图:

此点层的信息可在https://services3.arcgis.com/GVgbJbqm8hXASVYi/ArcGIS/rest/services/Trailheads/FeatureServer/0查看,如下所示:

决定显示哪个字段的代码,明眼人都能看出,是在59行,即:expression: "$feature.TRL_NAME"。不用数,可以直接搜这行代码来定位。

由上图所示,我们可以知道这个点层都有这么些字段,那么我们要显示其他的字段,怎么办?

很简单,把这行代码改了就行了。如下图所示:

但有时候为什么有的字段就不显示了,不仅字段不显示,整个图层都不显示了呢?这是因为有了错误,这整个层都会受到影响。这个有的时候,我还没有确认都什么情况,有的是用了别的组件,如popup或者什么,有的也不知道是怎么了。

如果字段名没错,也确实是这个图层的,那么就肯定有问题。

在寻找答案的时候,我后来发现了这个:

这所需要的,就是:outFields: ["TRL_NAME", "ELEV_FT"]

 

独孤尚良dugushangliang——著

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值