zoukankan      html  css  js  c++  java
  • 如何正确响应ArcGIS JavaScript API中图形的鼠标事件

    在使用ArcGIS JavaScript API编写程序的时候,程序员往往需要完成这样一个功能:点击地图上的图形,自动进行专题GIS数据查询,当在地图非图形区域上点击时,自动进行底图兴趣点查询。

    由于专题GIS图形是叠加在底图上的,所以我们在处理地图的鼠标点击事件时,就需要根据实际点击的位置和内容来对不同的数据进行查询。

    ArcGIS JavaScript API为编程人员分别提供了针对地图对象和图形的两个鼠标点击事件。

    下面是示例代码:

     1 <!DOCTYPE html>
     2 <html>
     3   <head>
     4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5     <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" />
     6     <title>Test Map</title>
     7     <link rel="stylesheet" href="http://localhost/arcgis_js_api/library/3.17/3.17/dijit/themes/claro/claro.css" />
     8     <link rel="stylesheet" href="http://localhost/arcgis_js_api/library/3.17/3.17/esri/css/esri.css" />
     9     <style>
    10       html, body, #ui-map-view {
    11         margin: 0;
    12         padding: 0;
    13          100%;
    14         height: 100%;
    15       }
    16     </style>
    17     <script src="http://localhost/arcgis_js_api/library/3.17/3.17/init.js"></script>
    18     <script>
    19       var myMap;
    20       require([
    21         "esri/layers/ArcGISTiledMapServiceLayer",
    22         "esri/symbols/SimpleMarkerSymbol",
    23         "esri/map",
    24         "dojo/on",
    25         "esri/graphic",
    26         "esri/geometry/Point",
    27         "dojo/domReady!"
    28       ], function ( TileLayer,SimpleMarkerSymbol, Map, on,Graphic,Point){
    35         var layer = new TileLayer(
    36           "https://www.seanpc.com/ags/rest/services/WorldBaseMap/MapServer"
    37         );
    38         myMap = new Map("ui-map-view",{
    39           center: [-111.87, 40.57]
    40         });
    41         myMap.addLayer(layer);
    42     //地图鼠标点击响应事件
    43         on(myMap,"click",function(e){
    44           alert("map clicked");
    45         });
    46         
    47        myMap.on("load", function() {//图形鼠标点击响应事件
    48         myMap.graphics.on("click",function(e){
    49           alert("graphic clicked");
    50           e.stopPropagation();
    51         });
    52         var g=new Graphic();
    53         g.setGeometry(new Point([-111.87, 40.57]));
    54          var simpleMarkerSymbol = new SimpleMarkerSymbol();
    55          g.setSymbol(simpleMarkerSymbol);
    56         myMap.graphics.add(g);
    57         });
    58       });
    59     </script>
    60   </head>
    61   <body class="claro">
    62     <div id="ui-map-view"></div>
    63   </body>
    64 </html>
  • 相关阅读:
    AJAX聊天室小DEMO(讨厌JS,IE下有问题已解决)
    [ZT]线索二叉树(C#数据结构五)
    栈(C#数据结构学习二)
    eclipse 安装 resin 3 步骤
    解决全局utf8编码下asp.net接收gb2312乱码的问题
    模板里的控件要用FindControl(id)方法读取
    OpenSessionInView
    asp:button控件调用js函数不刷新方法
    OFFICE 出现“正在配置”的解决方法
    开发经验
  • 原文地址:https://www.cnblogs.com/luwl/p/5912671.html
Copyright © 2011-2022 走看看