栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

GISer从零开始学习ArcGIS API for JavaScript&ArcGIS Online教程(六)点击地图点拾取经纬度坐标

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GISer从零开始学习ArcGIS API for JavaScript&ArcGIS Online教程(六)点击地图点拾取经纬度坐标

GISer从零开始学习ArcGIS API for JavaScript&ArcGIS Online教程(六)点击地图点拾取经纬度坐标

大家应该都用过百度或者高德的坐标拾取功能:

GIS应用中经常会有需要获取某地点经纬度的情况,百度和高德的这个功能蛮实用的
而强大的ArcGIS如何能少得了这个功能,我们马上就自己用JS 的API动手做一个,而且是威力加强pro版的:

如上图,鼠标点击后就出现点击点的经纬度和高程信息了
具体步骤:

一、基础地图

往前找第二节,翻出当时做好的空白3D地图,拿它来打底



  
  
  标题
  

  
  

  


  
二、点击地图获取点的经纬度(坐标)和高程
  • point

我们先来查阅一下API文档:
https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Point.html

看到point有lat、long、z等等这些属性信息,一会拿来用就可以了

  • 信息显示区域

然后就是要把这些信息显示到点击的点那里,再看一下这个API:
https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-PointSymbol3D.html
符合我们的要求,新建一个TextSymbol3DLayer即可:

        // Initialize symbols
        const textSymbol = {
          type: "point-3d", // autocasts as new PointSymbol3D()
          verticalOffset: {
            screenLength: 10 // Offset the text to be above the line
          },
          symbolLayers: [
            {
              type: "text", // autocasts as new TextSymbol3DLayer()
              material: { color: "black" },
              size: 12,
              background: { color: [255, 255, 255, 0.75] },
              verticalAlignment: "bottom" // Aligns the text's bottom to be above the input position
            }
          ]
        };
  • 事件功能绑定
        view.on("click", (event) => {
          const position = event.mapPoint;

              // 清空一下
              view.graphics.removeAll();

              // 构建显示信息
              textSymbol.symbolLayers[0].text =
                (position.longitude).toFixed(4) + "," +(position.latitude).toFixed(4)+ "," +(position.z).toFixed(2);
          //添加到地图
          view.graphics.add(
                  new Graphic({
                    geometry: position,
                    symbol: textSymbol
                  })
                );

            })
            .catch((error) => {
              textSymbol.symbolLayers[0].text =
                "Elevation query failed (" + error.message + ")";
            });

把这些和打底地图组合到一起就OK了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024604.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号