PopUp和Graphics的使用

ArcGIS API for Javascript 3.21地图开发实例(一、图形绘制和删除及popup弹出层) 本例展示了如何使用ArcGIS api for Javascript在网页上显示地图、使用搜索功能、在地图上绘制图形、删除图形以及popup弹出框展示。 阅读详情

PopUp和Graphics的使用

实现功能

实现了鼠标点击后出现点图层并且弹出信息模板。

相关代码:
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
  <meta name="description" content="[Get started with popups - 4.3]">
  <!-- 
  ArcGIS API for JavaScript, https://js.arcgis.com
  For more information about the get-started-popup sample, read the original sample description at developers.arcgis.com.
  https://developers.arcgis.com/javascript/latest/get-started-popup/index.html  
  -->
  <title>Get started with popups - 4.3</title>

  <style>
    html,
    body,
    #viewDiv {
      padding: 0;
      margin: 0;
      height: 100%;
      width: 100%;
    }

    #instruction {
      z-index: 99;
      position: absolute;
      top: 15px;
      left: 50%;
      padding: 5px;
      margin-left: -175px;
      height: 20px;
      width: 350px;
      background: rgba(25, 25, 25, 0.8);
      color: white;
    }
  </style>

  <link rel="stylesheet" href="https://js.arcgis.com/4.3/esri/css/main.css">
  <script src="https://js.arcgis.com/4.3/"></script>

  <script>
    require([
      "esri/tasks/Locator",
      "esri/Map",
      "esri/views/MapView",
      "esri/symbols/SimpleMarkerSymbol",
      "esri/Graphic",
      "esri/geometry/Point",
      "dojo/domReady!"
    ], function(
      Locator,
      Map,
      MapView,
      SimpleMarkerSymbol,
      Graphic,
      Point
    ) {

      // Set up a locator task using the world geocoding service
      var locatorTask = new Locator({
        url: "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer"
      });

      //add a graphic layer


      // Create the Map
      var map = new Map({
        basemap: "streets-navigation-vector"
      });

      // Create the MapView
      var view = new MapView({
        container: "viewDiv",
        map: map,
        center: [-116.3031, 43.6088],
        zoom: 12
      });

      function addPoint(x,y){
        if(!view.isRejected()){
          view.graphics.removeAll();
        }
        let  point = new Point({
        longitude:x,
        latitude: y 
      }),

      markerSymbol = new SimpleMarkerSymbol({
        color: [226, 119, 40],
        outline: { // autocasts as new SimpleLineSymbol()
          color: [255, 255, 255],
          width: 2
        }
      }),
              // Create a graphic and add the geometry and symbol to it
      pointGraphic = new Graphic({
        geometry: point,
        symbol: markerSymbol
      });
        view.graphics.addMany([pointGraphic]);
      }

      /*******************************************************************
       * This click event sets generic content on the popup not tied to
       * a layer, graphic, or popupTemplate. The location of the point is
       * used as input to a reverse geocode method and the resulting
       * address is printed to the popup content.
       *******************************************************************/
      view.on("click", function(event) {
        // Get the coordinates of the click on the view
        var lat = Math.round(event.mapPoint.latitude * 1000) / 1000;
        var lon = Math.round(event.mapPoint.longitude * 1000) / 1000;
        addPoint(lon,lat);
        view.popup.open({
          // Set the popup's title to the coordinates of the location
          title: "Reverse geocode: [" + lon + ", " + lat + "]",
          location: event.mapPoint // Set the location of the popup to the clicked location
        });

        // Display the popup
        // Execute a reverse geocode using the clicked location
        locatorTask.locationToAddress(event.mapPoint).then(function(
          response) {
          // If an address is successfully found, print it to the popup's content
          var address = response.address.Match_addr;
          view.popup.content = address;
        }).otherwise(function(err) {
          // If the promise fails and no result is found, print a generic message
          // to the popup's content
          view.popup.content =
            "No address was found for this location";
        });
      });
    });
  </script>
</head>

<body>
  <div id="viewDiv"></div>
  <div id="instruction">Click any location on the map to see its street address</div>
</body>

</html>
实现效果展示

1-1

1-2

如果读者你细心的话

发现两个效果图的不同点:

告诉你原因,很简单,博主小小的写了一个判断:

        if(!view.isRejected()){
          view.graphics.removeAll();
        }

就这样,一个简单的练手搞定!

在GIS的沙场,传播有价值的东西!

【10.1.1】ArcGIS Runtime for Android-Samples-界面展示 第一章:Maps 第二章:Features 第三章:Graphics 1、Draw graphic elements sample——在地图上绘制并显示点线面图形 第四章: 1、 阅读详情

相关推荐

arcgis 自定义弹出窗口

网上很少资料有解决arcgis for silverlight 的这个问题的,本人也搞了好久才解决的,所以分值高了一点,如代码有问题,可以联系我。

ArcGIS API for JavaScript 实现graphicsLayer弹窗

需求 &nbsp;&nbsp;&nbsp;&nbsp;需要在graphicsLayer中实现点击图标,出现弹窗显示图标的详情信息。 实现效果 开发思路 获取图层中的要素 对获取的要素进行graphic化(设置图标、属性)并添加到graphicsLayer中 给graphicsLayer添加弹窗 实现代码 &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt;...

idomyway的博客 6324

二次开发vba_CATIA VBA(VBS)二次开发:使用Search批量选择元素

在CATIA二次开发中很多在程序中进行自动交互的方法或函数都需要使用选择集作为参数,将几何元素按照要求批量添加到选择集中也是实现程序自动运行的有效方法。在前面的文章《CATIA使用VBA(VBS)二次开发时用户的交互选择》和《CATIA使用VBA(VBS)二次开发时工程图和草图位置的交互选择函数Indicate2D》中介绍了在CATIA VBA(VBS)二次开发中用户和选择集之间的交互操...

weixin_32497403的博客 1321

cesium自定义的弹窗 Popup弹窗(可随球放大缩小,移动)

# 效果 图中效果源代码在下面的封装栏中 # 基本思路 添加一个鼠标左键点击事件,当鼠标点击时,利用vue2.0中 Vue.extend() 动态添加一个dom元素,将DOM元素渲染到cesium容器中,并利用cesium中提供的 viewer.scene.postRender 实时更新坐标位置。思路很简单,接下来我们进行实现。 # 实现方法 1. 首先我们需要生成一个球体做我们标记的容器。 viewer = new Cesium.Viewer('cesiumContainer',{

God's asylum的博客 1万+

2025.06.24【R语言】|clusterProfiler安装与常见报错FAQ全解

本文介绍了clusterProfiler工具的安装方法及常见报错解决方案。安装可通过Bioconductor或Conda完成,需注意安装配套注释包。文中列举了10种常见报错,包括依赖包缺失、ID类型不匹配、物种不支持等问题,并给出具体解决方法。最后总结了GO/KEGG富集分析的标准流程,包括ID转换、富集分析和可视化步骤,为生物信息学分析提供实用参考。建议使用R≥4.2版本,并确保正确调用BiocManager进行安装。

5994

电子工程师必看:dB与放大倍数快速换算表(附常见误区解析)

本文为电子工程师提供了dB与放大倍数快速换算的实战指南。文章深度解析了分贝的本质与核心价值,并提供了电压/电流与功率增益的速查表及心算技巧。重点剖析了混淆电压与功率dB、-3dB带宽理解等常见误区,并结合示波器、频谱仪测量及系统级应用,帮助工程师在实际工作中高效、准确地运用这一对数工具。

weixin_29214199的博客 654

ArcGIS JS API popup弹窗

一、要素服务popup 原始弹窗由popup微件控制,view对象都自带默认的popup,格式可以由Featurelayer的popupTemplate属性控制。 测试代码(Vue中): <template> <div id="viewDiv"> <InfoWindow v-show="this.showWindow"></InfoWindow> </div>

suntongxue100的博客 5015

OpenBullet2 学习研究2-Conditions条件之KeyCheck的使用

上一节我们学习了如何安装Openbullet2以及如何新建一个配置,最后我们再配置里面新建一个Http的请求块,帮助我们发送了第一个请请求。这一节我们来学习check块。当我们发送请求以后,请求返回的内容是否是我们想要的,或者请求发送正确没有,这个我们怎么判断呢?这个时候就要用到check块了。

956

new mars3d.graphic.Popup({实现插入轮播图组件的思路参考

new mars3d.graphic.Popup({实现插入轮播图组件的思路参考

m0_69803146的博客 2137

EtherCAT APWR报文实战:从站地址配置(0x0010)的初始化流程与报文解析

本文详细解析了EtherCAT APWR报文在从站地址配置(0x0010寄存器)中的初始化流程与实战应用。通过类比物业分配门牌号,生动解释了APWR报文如何高效批量配置从站地址,并深入探讨了0x0010寄存器的特殊作用、初始化步骤及常见问题排查方法。文章结合IgH主站的三从站配置案例,提供了报文解析技巧和调试建议,帮助工程师快速掌握EtherCAT网络配置的核心技术。

weixin_28744423的博客 410

基于PPT的三维光路结构示意图绘制实例演示-技术细节

基于PPT的三维光路结构示意图绘制实例演示-技术细节

简单光学 7461

【mars3d】 graphic.bindPopup(inthtml).openPopup()无需单击小车,即可在地图上自动激活弹窗的效果。

new mars3d.graphic.FixedRoute({无需单击小车,即可在地图上自动激活弹窗的效果。 graphic.bindPopup(inthtml).openPopup()

m0_69803146的博客 3229

风电光伏功率预测竞赛精华总结:技术解析与实战经验

本文深度解析新能源功率预测竞赛的技术要点与实战经验。首先介绍了风电、光伏功率预测对电网调度优化、降低运营风险的重要性,以及多个竞赛的基本概况。在数据特征分析部分,详细探讨了气象预报数据和功率数据的特征,包括时间周期性、数据质量问题及处理方法。针对异常值检测、数据标准化和特征工程(如时间特征、统计聚合特征、风速风向特征和滞后特征)提供了具体的技术实现方案。文章为新能源功率预测提供了实用的技术指导,对相关竞赛和实际应用具有重要参考价值。

算法工程师 204

html调用arcsde,利用Arcgis for javascript API绘制GeoJSON并同时弹出多个Popup

本文实现的效果图:图1 上海5个地点的部分预报属性 图2 上海某三条航线的部分预报属性2. 各类依赖库引入及前端HTML首先需要先载入需要用的常用js、Arcgis及两个扩充库的js及部分css(下载地址见其github):html>AddGeoJSONandDisplayMultiplePopupvardojoCo...

weixin_30806145的博客 525

DSP的CLA调试技巧

本文介绍了基于TMS320F28377D的CLA(Control Law Accelerator)开发实战教程,涵盖基础配置、编程、调试与优化全流程。主要内容包括:CLA核心特性及其作为实时控制协处理器的优势;开发环境搭建与工程配置要点;CLA任务调度、数据交换及编程约束;调试技巧如断点设置和性能分析方法;进阶应用案例(批量除法运算)及优化策略;以及推荐的学习资源和硬件平台。教程强调数据一致性和任务同步问题,为快速上手CLA开发提供实用指导。

1040

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

使用android.graphics.Path类自绘制PopupWindow背景

PopupWindow简介PopupWindow是悬浮在当前activity上的一个容器,用它可以展示任意的内容。 PopupWindow跟位置有关的API有下面几个: showAsDropDown(View anchor, int xoff, int yoff, int gravity) 显示在anchor的左下角,通过xoff,yoff调整距离,gravity是popup相对于anchor的

wenping的专栏 1758

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Popup screen to input/select/confirm

The first attachment lists some examples about following FMs:   REUSE_ALV_POPUP_TO_SELECT (multi-selectable)   POPUP_WITH_TABLE_DISPLAY    POPUP_TO_GET_ONE_VALUE (w/o db check)   POPUP_TO_GET_VALUE (...

Tim.Tang's Blog 176

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

openPangu-72B OpenAI兼容API实战:一条curl命令搞定聊天、工具调用与思考模式

本实战面向新手:在昇腾 NPU 上用 vllm-ascend 0.11.0 镜像部署 openPangu-72B 大模型,通过 OpenAI 兼容 API 用一条 curl 命令完成聊天问答、工具调用与思考模式调用。镜像预装 CANN 8.5.0.alpha002、torch-npu 2.7.1 等全套依赖,修改权重目录即可离线推理,无需手动编译环境。 ## 为什么选 openPangu-72B

gitblog_00258的博客 201

Android11_Graphics

Android11_Graphics

圆静居士的专栏 326

QT5显示的graphics介绍

这部分直接看qt对嵌入式的支持介绍,不得不说,一个软件要做好,各方面都要涉及到,不懂理论的人怎么能够选择嵌入式最恰当的东西呢 —— [ Qt for Embedded Linux ] EGLFS EGL is an interface between OpenGL and the native windowing system. Qt can use EGL for con...

archerLea 2065

图形视图体系(The Graphics View Framework)

这里的内容,只是个人学习QT的官方文档时,记录的个人理解。用中文写,是因为官方英文文档已经非常详细,我不打算翻译一个中文的版本,所以,只是挑选了一些自己感兴趣的内容,记录一些要点和自己的理解等   英语好的同学可以直接看官方文档:http://doc.qt.nokia.com/4.6/graphicsview.html   概念 名称 含义 V

zhang_sinner的专栏 1081

arcgis api for js4.x实现点击图层上的绘制的Graphics点,弹出点信息。

arcgis api for js4.x 在Map地图中添加GraphicsLayer图层,在GraphicsLayer图层添加绘制graphics点,点击绘制的点,弹出信息框。 hitTest(screenPoint, options) 单击视图的屏幕坐标(或本机鼠标事件)。 用于指定hitTest中包含或排除的内容的选项。 返回与指定屏幕坐标相交的每个图层的最上面的要素。图层类型返回结果:GraphicsLayer、FeatureLayer、CSVLayer、GeoRSSLayer、KMLLayer和S

体验新模板 4726

C# WinForm ToolTip深度解析:从基础用法到工业级定制

ToolTip是Windows桌面应用中实现轻量级、上下文感知用户反馈的核心机制,其本质并非UI控件而是基于Windows API的消息代理服务。它通过InitialDelay、ReshowDelay和AutoPopDelay三层延迟协同,结合Popup事件动态注入内容,在不中断操作流的前提下提供即时提示。在C# WinForm开发中,toolTip因原生支持跨控件复用、自动定位与生命周期托管而具备独特工程价值,广泛应用于上位机、医疗设备界面及高可靠性人机交互场景。本文深入剖析toolTip底层消息机制、高

weixin_34275734的博客 285
上一篇: vscode配置chrome
下一篇: 结合arcgis api for js进行PIO搜索
Yao.Li
博客等级 码龄10年 405粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yao.Li

爱的魔力,一被卡布奇诺~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值