var map, navToolbar, editToolbar, tileLayer, toolbar;
//var mapBaseUrl = "http://localhost:8399/arcgis/rest/services/pdsTile/MapServer";
//var mapDyUrl = "http://localhost:8399/arcgis/rest/services/pds/MapServer";
//var mapDyUrl = "http://10.19.110.130:8080/arcgis/rest/services/BaseMAP/MapServer";
var mapDyUrl = "http://10.19.110.130:8080/arcgis/rest/services/baseMAP/MapServer";
var mapBjUrl = "http://10.19.110.130:8080/arcgis/rest/services/YCBJ/MapServer";
var dynamicMapServiceLayerBj;

function init() {
    try{
    map = new esri.Map("map");
    
    //tileLayer = new esri.layers.ArcGISTiledMapServiceLayer(mapBaseUrl);
    //map.addLayer(tileLayer);
    
    var dynamicMapServiceLayer = new esri.layers.ArcGISDynamicMapServiceLayer(mapDyUrl); 
        map.addLayer(dynamicMapServiceLayer);
        
        dynamicMapServiceLayerBj = new esri.layers.ArcGISDynamicMapServiceLayer(mapBjUrl); 
        map.addLayer(dynamicMapServiceLayerBj);
    
        //初始化
        dojo.connect(map, "onLoad", dxInit);

}catch(e){alert("地图初始化失败:"+e.message);}
  }
  
  function dxInit()
  {
 try{
 //alert(map.isDoubleClickZoom);
 //map.disableDoubleClickZoom(); 
     
     //比例尺显示
     //window.setTimeout("queryMapScale.init(map);", 1000);
     
     //禁止双击放大
     map.disableDoubleClickZoom();
     
     //初始化导航工具条
          navToolbar = new esri.toolbars.Navigation(map);
          dojo.connect(navToolbar, "onExtentHistoryChange", extentHistoryChangeHandler);
          
          //初始化在线编辑工具条
          editToolbar = new esri.toolbars.Edit(map);
          dojo.connect(map.graphics, "onClick", function(evt) {
              dojo.stopEvent(evt); 
              activateToolbar(evt.graphic);              
          });
          
          //初始化绘制工具条
          toolbar = new esri.toolbars.Draw(map);           
          //dojo.connect(toolbar, "onDrawEnd", addToMap);
          
          //显示坐标
          dojo.connect(map, "onMouseMove", showCoordinates);
          dojo.connect(map, "onMouseOut", hideCoordinates);          
          
          //加载鹰眼图、加载图层列表
          dojo.connect(map, "onLayerAdd", showLayers);
          
          //加载之前记录标注
          //window.setTimeout("getBz();", 1000);------------------------------
          
          //地图窗口更新
          //alert(document.getElementById('map1'));
          resizeMap();
     dojo.connect(document.getElementById('map1'), 'resize', resizeMap);
     
     //双击map,定位街景
     dojo.connect(map, 'onDblClick', zoomTo3D);
     
     //图层控制
     layersCotrol([0]);
 }catch(e){
 alert("地图初始化失败:"+e.message);
 }
  }
  
  //图层控制
  function layersCotrol(visible){
 
 try{
 dynamicMapServiceLayerBj.setVisibleLayers(visible);
 }catch(e){
 alert(e.message);
 }
  }
  
  //显示图层列表
  function showLayers(){
 
 try{
 //在下拉框中显示所有图层名称
 var layers = dynamicMapServiceLayerBj.layerInfos;
 var obj1 = new Option("", -1);
 for(var i=0; i<layers.length; i++){
  var obj = new Option(layers[i].name, i);
  dojo.byId("layers").add(obj);
 }
 }catch(e){
 alert(e.message);
 }
  }
  
  //选择图层
  function selectLayer(){
 
 try{
 layersCotrol([dojo.byId("layers").value]);
 }catch(e){
 alert(e.message);
 }
  }
  
  //刷新map
  function resizeMap(){
 map.resize();
 map.reposition();
  }
  
  //定位街景
  function zoomTo3D(evt)
  {
  var point = evt.mapPoint;
 
   var x = point.x.toFixed(4);
   var y = point.y.toFixed(4);

//window.top.addmark(x, y);
   //alert(x + '|' + y);
   // 定位街景
   LocationTrueMap(x, y);
  }
  // 根据坐标加载街景
  function LocationTrueMap(x, y) {
      window.top.frames["mapframe"].frames["ldframe"].showVisionByLngLat(x, y); //定位到街景
  }
  
  //鹰眼图
  function showOverview() {
      var layer = new esri.layers.ArcGISDynamicMapServiceLayer(mapDyUrl);
      layer.setImageFormat("png24");
      try{
     var createOverviewMap = function() {
       overviewMapDijit = new dijits.overview.OverviewMap({
         map: map,
         baseLayer: layer,
         width: 150,
         height: 150,
         attachTo: "bottom-right",
         expandFactor: 1.42,
         color: "#80A8C1",
         opacity: 0.5
       });
       overviewMapDijit.startup();
     };
      }catch(e){
     alert("加载鹰眼图失败:"+e.message);
      }
      
      if (layer.loaded) {
        createOverviewMap();
      }
      else {
        dojo.connect(layer, "onLoad", createOverviewMap);
      }
  }
   
  //前一视图、后一视图
  function extentHistoryChangeHandler() {
    dijit.byId("zoomprev").disabled = navToolbar.isFirstExtent();
    dijit.byId("zoomnext").disabled = navToolbar.isLastExtent();
  }
  
  //显示坐标值
  function showCoordinates(evt)
  {
  try{
      var mp = evt.mapPoint;
      dojo.byId("info").innerHTML = mp.x.toFixed(4) +","+ mp.y.toFixed(4);
 
  }catch(e){
  alert("显示坐标值错误:"+e.message);
  }
  }
  
  //隐藏坐标
  function hideCoordinates(evt){
 dojo.byId("info").innerHTML = "";
  }
  
  //平移
  function pan(){
 try{
 toolbar.deactivate();
 map.setMapCursor('default'); 
 navToolbar.activate(esri.toolbars.Navigation.PAN);
 }catch(e){
 alert(e.message);
 }
  }
  
  //清空地图
  function clearMap(){
 navToolbar.deactivate();
 toolbar.deactivate();
 map.graphics.clear();
 map.setMapCursor('default');
  }
  
  //添加标注到地图方法1
  var handler;
  function addBzToMap1(){
 toolbar.deactivate();
 map.setMapCursor('crosshair'); 
 handler = dojo.connect(map, "onClick", addPoint);
  }
  
 function add(x, y) {
    
      window.parent.showdialog('add','', x,y);
  }

function modify(id, x, y) { 
      window.parent.showdialog('modify', id, x, y);
  }

function del(id, x, y) {
      //alert(x + "--" + y);
      window.parent.showdialog('del', id, x, y);
  }
  function addPoint(evt) {
 try{
 var symbol = new esri.symbol.PictureMarkerSymbol('images/nav/bz.png', 25, 25);
 var point = new esri.geometry.Point(evt.mapPoint, new esri.SpatialReference({ wkid: 4326 }));
 var graphic = new esri.Graphic(point, symbol);
 map.graphics.add(graphic);
 
     map.infoWindow.setTitle("新标注");
     var geoPt = evt.mapPoint;
     map.infoWindow.setContent("<b>X坐标: </b>" + geoPt.y.toFixed(4) 
     
 + "<br><b>Y坐标: </b>" + geoPt.x.toFixed(4)
     
 + "<table></table>"
     
 + "<br><input type='button' value='添加属性' onclick='window.top.addmark(" + geoPt.x.toFixed(4) + "," + geoPt.y.toFixed(4) + ")'>"
     
     ); 
     map.infoWindow.show(evt.mapPoint,map.getInfoWindowAnchor(evt.screenPoint));
     map.setMapCursor('default');
     dojo.disconnect(handler);

window.top.frames["mapframe"].frames["ldframe"].showVisionByLngLat(geoPt.x.toFixed(4), geoPt.y.toFixed(4)); //定位到街景
 }catch(e){
 alert("添加标注出错:"+e.message);
 }
  }
  
  //定位
  function zoomToPoint(x, y){
 var geoPoint = new esri.geometry.Point({"x":x,"y":y}, map.spatialReference); 
 map.centerAndZoom(geoPoint, 3);
  }
  
  //小汽车定位
  //zoomCar(113.32,23.12);
  function zoomCar(x, y) {
 navToolbar.deactivate();
 map.graphics.clear();
 try{
 var geoPoint = new esri.geometry.Point({"x":x,"y":y}, map.spatialReference); 
 map.centerAndZoom(geoPoint);
 var symbol = new esri.symbol.PictureMarkerSymbol('images/nav/car.png', 24,24);
 var graphic = new esri.Graphic(geoPoint, symbol);
 map.graphics.add(graphic);
 }catch(e){
     alert("小汽车定位" + e.message);
 }
  }

var url = "http://192.168.1.11:8080";
  
  //接收主题名称、坐标值
  function getBz(aa) { 
      var graphicsLayer = new esri.layers.GraphicsLayer();
      try {
          for (var i = 0; i < aa.length; i++) {
              a_x = aa[i][1];
              a_y = aa[i][2];
              // alert(a_x+"---"+a_y);
              var point = new esri.geometry.Point(a_x, a_y, map.spatialReference);
              var symbol = new esri.symbol.PictureMarkerSymbol('images/nav/bz.png', 25, 25);
              var textSym = new esri.symbol.TextSymbol(aa[i][0]);
              textSym.setAlign(esri.symbol.TextSymbol.ALIGN_END);
              var graphic = new esri.Graphic(point, symbol);

var infoTemplate = new esri.InfoTemplate();
              infoTemplate.setTitle("广告信息");
              infoTemplate.setContent(
//                "<div style='text-align:center;'><img src='" + url + aa[i][5] + "' alt='" + url + aa[i][5] + "' style='width:100px;height:42px;'/></div>" +
//                "<b>广告名称: </b>" + aa[i][3] + "<br/>" +
//                "<b>广告位置: </b>" + aa[i][4] + "<br/>" +
//             "<br><input type='button' value='修改广告' onclick='map.infoWindow.hide();modify(" + aa[i][0] + "," + a_x + "," + a_y + ")'>" +
//             "    <input type='button' value='删除广告' onclick='map.infoWindow.hide();del(" + aa[i][0] + "," + a_x + "," + a_y + ")'>"

);
              graphic.setInfoTemplate(infoTemplate);
              var graphicText = new esri.Graphic(point, textSym);
              graphicsLayer.add(graphic);
              graphicsLayer.add(graphicText);
 
              if (aa.length == 1) {
                //  zoomToPoint(a_x, a_y); 
              } 
          }
      } catch (e) {
          alert("获取坐标点数组出错:" + e.message + "---aa:" + aa);
      }
      map.addLayer(graphicsLayer);
  }
  
  //在线编辑--移动要素
  function activateToolbar(graphic) { 
      try{
 var tool = 0; 
     tool = tool | esri.toolbars.Edit.MOVE;
     //tool = tool | esri.toolbars.Edit.EDIT_VERTICES;  
     //tool = tool | esri.toolbars.Edit.SCALE;  
     //tool = tool | esri.toolbars.Edit.ROTATE;  
           
     var options = { 
       allowAddVertices: true, 
       allowDeleteVertices: true 
     }; 
     editToolbar.activate(tool, graphic, options);
     dojo.connect(map.graphics, "onDblClick", showInfoWindow);
      }catch(e){
     alert("移动要素问题:"+e.message);
      }
  } 
  
  function showInfoWindow(evt){
 evt.stopPropagation();
 
 map.infoWindow.setTitle("新标注");
      var geoPt = evt.mapPoint;
      map.infoWindow.setContent("<b>X坐标: </b>" + geoPt.y.toFixed(4) 
       + "<br><b>Y坐标: </b>" + geoPt.x.toFixed(4)
       + "<table></table>"
           + "<br><input type='button' value='添加广告' onclick='map.infoWindow.hide();add(" + geoPt.x + "," + geoPt.y + ")'>"
      
      ); 
      map.infoWindow.show(evt.mapPoint,map.getInfoWindowAnchor(evt.screenPoint));
  }
  
  //框选
  function queryBz()
  {
 map.setMapCursor('crosshair');
 navToolbar.deactivate();
 toolbar.activate(esri.toolbars.Draw.EXTENT);
 toolbar.onDrawEnd = function doQueryExtent(extent) {
 window.parent.stat(extent.xmin, extent.ymin, extent.xmax, extent.ymax);
//  //获取框选区域的坐标范围
//  alert("xmax:"+extent.xmax+",xmin:"+extent.xmin+",  ymax:"+extent.ymax+",ymin:"+extent.ymin);
 };
 
  }

(转)Arcgis API常用接口调用方法的更多相关文章

  1. 基于apache httpclient的常用接口调用方法

    现在的接口开发,大部分是基于http的请求和处理,现在整理了一份常用的调用方式工具类 package com.xh.oms.common.util; import java.io.BufferedRe ...

  2. phpcms常用接口调用方法

    常用函数 , 打开include/global.func.php,下面存放一些公共函数 view plaincopy to clipboardprint?function str_charset($i ...

  3. ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法

    原文:ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法 群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebServi ...

  4. ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试

    原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分 ...

  5. SERVLET类常用接口及方法

    SERVLET类常用接口及方法 2011-09-09 16:14:43    [size=xx-small]SERVLET类常用接口及方法2007年04月05日 星期四 04:46 P.M.基本类和接 ...

  6. ArcGIS API for Silverlight 调用GP服务绘制等值面

    原文:ArcGIS API for Silverlight 调用GP服务绘制等值面 GP服务模型如下图: 示例效果图片如下:

  7. ArcGIS API for Silverlight 调用GP服务加载等值线图层

    原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层 第二篇.Silverlight客户端调用GP服务 利用ArcGIS API for Silverlight实现G ...

  8. 新浪网易淘宝等IP地区信息查询开放API接口调用方法

    通过IP地址获取对应的地区信息通常有两种方法:1)自己写程序,解析IP对应的地区信息,需要数据库.2)根据第三方提供的API查询获取地区信息. 第一种方法,参见文本<通过纯真IP数据库获取IP地 ...

  9. 云极知客开放平台接口调用方法(C#)

    云极知客为企业提供基于SAAS的智能问答服务.支持企业个性化知识库的快速导入,借助语义模型的理解和分析,使企业客户立即就拥有本行业的24小时客服小专家.其SAAS模式实现零成本投入下的实时客服数据的可 ...

随机推荐

  1. c++cin.ignore()

    c++ 中cin.ignore(100,'\n'); 的作用是清除输入流中多余的字符请问这句话是什么意思? 可以举个例子吗? 提问者采纳 这个其实就是忽略cin中的前100个字符,或是'\n'之前的字 ...

  2. python 迭代器、生成器、装饰器

    一,迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束.迭代器只能往前不会后退. 特点: 访问者不需要关心迭代器内部的结构,仅需通过next()方 ...

  3. Mingyang.net:Controller必需是public吗?

    通常定义Controller时一般都定义成public: package net.mingyang.modules.system; @Controller @RequestMapping(" ...

  4. ORACLE错误一览表【转】

    http://blog.itpub.net/26892340/viewspace-722178/

  5. 解决oralce 11g dg搭建报错:ORA-16664、ORA-16714、ORA-16810问题--转

    下面不是小编错误报告只是转了网络一篇,同时也解决了我的问题所以复制过来给各位参考. 最近在弄11g的dg时,遇到如下问题,记录下.首先在主上查看报如下错误: DGMGRL> show confi ...

  6. 基于RBAC模型的通用企业权限管理系统

    1. 为什么我们需要基于RBAC模型的通用企业权限管理系统 管理信息系统是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁.构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的.权限 ...

  7. Hive参数层面常用优化

    1.hive数据仓库权限问题: set hive.warehouse.subdir.inherit.perms=true; 2.HiveServer2的内存 连接的个数越多压力越大,可以加大内存:可以 ...

  8. jmeter随笔(10)-中文url编码问题

    坚持分享,坚持总结,技术需要时间的积累和练习,对jmeter实践的点滴的记录,这里分享交流,仅供参考和讨论,有想法的欢迎留言.谈论,手机上图片如果不清晰,请点击[阅读原文]查看. 1技巧1:后台数据h ...

  9. JAVA面试题基础部分(三)

    20.接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的main方法? 接口可以继承接口.抽象类可以实现 ...

  10. 学习总结 java 异常

    package com.hanqi.ec; public class Test1 { public static void main(String[] args) { int a = 10 , b = ...