`
sungang_1120
  • 浏览: 322573 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

深入浅出 Javascript API(二)--地图显示与基本操作

 
阅读更多
  地图显示与基本操作(放大、缩小、移动、坐标显示)是Javascript API的基本功能,也是一个WebGIS应用的基本内容,Javascript提供了非常便捷的开发方法,当然在线浏览需要Ags服务器支持,如果自己电脑上没有配置Server服务,可以使用ArcGIS Online在线服务。
 
    内容目录:
 
1.Cache和非Cache地图展示
2.地图基本操作,如放大、缩小、移动,并和鼠标键盘按键关联
3.客户端显示鼠标当前地理位置
 
    直接使用在线地图查看最终效果:

http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/demos/Map/AddMapShowXYCoords.html

 

    使用过Dojo的开发人员应该很熟悉整个页面结构:
 
1.使用dojo提供的样式表
< style  type ="text/css" >
    @import "http://serverapi.arcgisonline.com/jsapi/arcgis/1/js/dojo/dijit/themes/tundra/tundra.css";
</ style >
 
2.引用脚本文件
< script  type ="text/javascript"  src ="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1" >
</ script >

    这里可能会有一个疑问,为什么是这样的目录结构,里面包含了dojo和javascript api所需要的js库吗?其实部署javascript api时,针对不同类型服务器端代码(Java、.Net、php)会有不同的Default页面,以.Net为例,Default.ashx引用了三个文件:
context.Response.WriteFile(context.Server.MapPath( " js "" esri "" esri.js " ));
context.Response.WriteFile(context.Server.MapPath(
" js "" dojo "" dojo "" dojo.xd.js " ));
context.Response.WriteFile(context.Server.MapPath(
" js "" esri "" jsapi.js " ));
 
将该页面设为起始页后,访问"http://ip/js/arcgis "时会直接将这三个js文件合并下载,大概300多KB。
 
3.接下来,就要对页面中所添加的地图元素与功能进行定制,同样是在脚本中完成,使用javascript api
复制代码
< script type = " text/javascript " >
    dojo.require(
" esri.map " );
    
var  myMap, myTiledMapServiceLayer;
    
function  init()  {
        myMap 
=   new  esri.Map( " mapDiv " );
        myTiledMapServiceLayer 
=   new  esri.layers.ArcGISTiledMapServiceLayer
(
" http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer " );
        myMap.addLayer(myTiledMapServiceLayer);
    }

    dojo.addOnLoad(init);
< / script>
复制代码
 
    dojo.require引入所需的包,其中的esri.Map类实现了图层、Graphics、消息窗口(查询属 性)、其他导航控制的方法,这里在指定的div中创建了一个地图。esri.layers.ArcGISTiledMapServiceLayer的作用 是获取REST API所提供的cache地图服务,这是一个在线服务,REST所能提供的其他服务可以查看REST API文档。esri.layers.ArcGISTiledMapServiceLayer继承于 esri.layers.ArcGISMapServiceLayer,该父类下还有另外一个子类 ArcGISDynamicMapServiceLayer,用于获取非cache地图服务。
 
    最后通过esri.Map的addLayer方法将该服务中的图层添加到当前地图中显示。
 
    dojo.addOnLoad(init)等价于<body onload=init>,页面加载的时候将执行init()脚本。
 
4.页面body区域
复制代码
< body >
    
< div  id ="mapDiv"  class ="tundra"  style ="width:900px; height:600px; border:1px solid #000;" ></ div >
    
< h4 > Work flow: </ h4 >
    
< ul >
        
< li > Create a map. </ li >
        
< li > Add an ArcGISTiledMapServiceLayer. </ li >
    
</ ul >
</ body >
复制代码

    最终地图将在mapDiv区域绘出。

5.放大缩小  平移

    esri.Map类包含地图放大缩   小   平移等基本功能的实现,可以将这些操作和业务应用绑定。通过esri.Map构造方法生成的地图对象实际已经包含一些 基础操作的快捷方式,如键盘方向键上下左右完成地图上下左右的固定单位移动,鼠标滚轮实现地图放大缩小,"shift+单击"为居中,"shift+双 击"为居中放大,"+"放大一级,"-"缩小一级。

6.动态显示当前鼠标位置的经纬度坐标

    动态显示鼠标经纬度 坐标大体上有两种方式,一是服务器端生成坐标,二是客户端生成坐标,孰优孰劣都很清楚了,服务器生成坐标值会消耗大量服务器资源,onMouseMove 总是在不停向服务器发送请求,这种模式下经常会碰到鼠标移动已经停止了,但是状态栏上的坐标信息还在变化,这就是服务器计算造成的延时造成的,因此对于真 正上线的webgis网站更多使用客户端方式,通过获取屏幕坐标,在投影参考系下换算地理坐标,显示在页面。

    Javascript API提供了一套API获取地理坐标:
function  showCoordinates(evt)  {
    
var  mp  =  evt.mapPoint;
    dojo.byId(
" info " ).innerHTML  =  mp.x  +   " "   +  mp.y;
}

    mapPoint是地理坐标,screenPoint是屏幕坐标。

7.通过dojo.connect建立对鼠标事件的监听

dojo.connect(map, "onMouseMove", showCoordinates);
dojo.connect(map, "onMouseDrag", showCoordinates);

    同时监听鼠标拖拽事件,添加到map.onLoad中就可以了,当然body区域中要加入显示坐标的div
< div  id ="info"  style ="padding:5px; margin:5px; background-color:#eee;" ></ div >

    完工!显示效果,界面很简单,但包含了鼠标和键盘的快捷键操作:

分享到:
评论

相关推荐

    深入浅出ArcGIS Server Javascript API

    《深入浅出ArcGIS Server Javascript API》教程旨在帮助开发者快速掌握如何使用JavaScript API创建Web GIS应用,利用RESTful接口与ArcGIS Server无缝对接,从而在不牺牲功能的前提下,提高开发效率,打造出富有吸引...

    arcgis api for javascript 开发教程

    《ArcGIS API for JavaScript开发教程》是一本专为Web GIS开发者设计的专业教程,它深入浅出地介绍了如何利用JavaScript这一强大的脚本语言进行地理信息系统(GIS)的应用开发。JavaScript是Web开发中的主流语言,它...

    深入浅出Ext JS(第2版) 随书光盘提供的书中实例

    《深入浅出Ext JS(第2版)》是一本详细解析Ext JS框架的权威书籍,其随书光盘包含了书中所有实例的源代码,这些代码对应于Ext JS的3.2.0版本。通过深入研究这些实例,读者可以更直观、更深入地理解Ext JS的强大功能和...

    ArcGis api for javascript 资料合集

    这份资料合集通过文档的形式,深入浅出地介绍了如何利用此API进行地图开发。 首先,《ArcGis-for-javaScript最全中文API.docx》是API的详细中文参考文档。这个文档全面地列出了ArcGIS API的所有功能和方法,包括...

    WebGIS从基础到开发实践(基于ArcGIS API For JavaScript)

    本教程“WebGIS从基础到开发实践(基于ArcGIS API For JavaScript)”深入浅出地介绍了如何利用JavaScript进行WebGIS应用的开发,特别强调了Esri公司的ArcGIS API的应用。 ArcGIS API for JavaScript是Esri公司提供...

    javascript-978-1-8496-9882-5:Google Maps JavaScript API食谱

    这本书深入浅出地介绍了如何利用JavaScript与Google Maps API进行交互,创建功能丰富的地图应用。标签“HTML”表明内容可能涉及到HTML与地图API的结合使用。 在JavaScript-978-1-8496-9882-5-main这个压缩包中,很...

    ArcGIS API for Javascript 4.X扩展canvas在三维地图实现热力图

    2. **创建地图实例**:使用ArcGIS API初始化地图,设置地图的基本属性,如中心位置、缩放级别和地图类型(二维或三维)。 3. **添加三维图层**:在地图上添加三维图层,这将为我们提供一个三维视图来展示热力图。 ...

    echarts-大部分插件地图.zip

    在"echarts-大部分插件地图.zip"这个压缩包中,我们可以找到与ECharts相关的多个重要组件和资源,这对于进行数据可视化项目开发来说非常有价值。 首先,"world.js"是一个包含世界地图数据的JavaScript文件,它通常...

    The Art&Science of JavaScript.pdf

    本书旨在通过一系列深入浅出的文章介绍JavaScript在现代Web开发中的应用。下面将根据提供的部分目录内容,详细解析各章节所涉及的重要知识点。 #### 章节一:表格的乐趣(Fun with Tables) **知识点:** - **HTML...

    高德地图城市统计、点聚合、热点图、添加点

    总的来说,通过高德地图的城市统计、点聚合、热点图和添加点功能,我们可以对城市数据进行深入分析和可视化展示,从而揭示出隐藏在海量数据背后的模式和趋势,为城市管理、规划和决策提供有力的支持。在实践中,还...

    arcgis_js_v45_api.zip

    《ArcGIS JavaScript API 4.5 深度解析与应用》 ArcGIS JavaScript API 4.5 是Esri公司推出的地图开发库的最新...对于开发者而言,深入理解和熟练掌握这些新特性,将有助于构建出更加高效、直观和引人入胜的地图应用。

    Echarts+百度地图_散点图完整版demo

    2. **初始化地图容器**:在页面中设置一个用于显示地图的 DOM 元素,并在 JavaScript 中初始化百度地图实例,设置中心点坐标、缩放级别等参数。 3. **配置 ECharts**:ECharts 实例需要一个容器,这个容器可以是...

    Making Isometric Social Real-Time Games with HTML5, CSS3, and JavaScript

    本书旨在通过一系列深入浅出的技术指导,帮助读者了解并掌握如何运用HTML5、CSS3以及JavaScript技术来创建吸引人的等距视图(isometric)社交实时游戏。 #### 关键知识点详述 **1. 图形基础:Canvas与Sprite** **...

    基于ECharts结合百度地图绘制地理信息数据

    在现代Web开发中,数据可视化是一项关键技能,尤其在处理地理信息数据时。ECharts作为一个强大的、开源的JavaScript图表库,被...通过深入理解ECharts和百度地图API,你可以创建出满足业务需求的高质量地图可视化应用。

    Google API开发详解:Google Maps与Google Earth双剑合璧(第2版).part3

    本书从易到难、由浅入深、循序渐... 本书内容紧凑、实例丰富、结构严谨、深入浅出,适合广大Web网站开发人员、Google地图爱好者、专业GIS开发人员和大中专院校学生阅读,尤其适合有一定JavaScript编程基础的相关人员。

    Google API开发详解:Google Maps与Google Earth双剑合璧(第2版).part1

    本书从易到难、由浅入深、循序渐... 本书内容紧凑、实例丰富、结构严谨、深入浅出,适合广大Web网站开发人员、Google地图爱好者、专业GIS开发人员和大中专院校学生阅读,尤其适合有一定JavaScript编程基础的相关人员。

Global site tag (gtag.js) - Google Analytics