package com.baixin.main;
/**
 *
 * @ClassName:   MapAbcToArcGISTLayer
 * @Description:    ArcGIS访问MapAbc地图服务
 * @author:        Zrd
 * @version:       v1.0 
 * @Date:          2012-8-11 上午10:18:17
 */
import java.util.HashMap;
import com.esri.android.map.TiledServiceLayer;
import com.esri.core.geometry.Envelope;
import com.esri.core.geometry.Point;
import com.esri.core.geometry.SpatialReference;
import com.esri.core.internal.b.a.a;

public class MapAbcToArcGISTLayer extends TiledServiceLayer {
 private int WKID = 2436;
 private String layername = null;
    private String layerurl = null;
 private static final double[] c = { 896.0859375, 548.04296875,
   224.02148437, 112.0107421875, 56.00537109375, 28.002685546875,
   14.0013427734375, 7.00067138671875, 3.50033569335937,
   1.75016784667968, 0.875083923339843, 0.4375419616699215,
   0.2187709808349608 };
 private static final double[] d = { 3386781.496062992D, 1693390.748031496D,
   846695.374015748D, 423347.687007874D, 211673.843503937D,
   105836.92175196858D, 52918.46087598425D, 26459.23043799213D,
   13229.61521899604D, 6614.807609498003D, 3307.403804749013D,
   1653.701902374507D, 826.8509511872533D };
 private static final double[] res = { 0.0011159643937610616,
   0.0032319287875221232, 0.0044638575750442465, 0.008927715150088493,
   0.017855430300176986, 0.03571086060035397, 0.07142172120070794,
   0.1428434424014159, 0.2856868848028318, 0.5713737696056635,
   1.143547539211327, 2.287295078422654, 4.574490156845308 };
 public static final int initWithDpi = 96;
 public MapAbcToArcGISTLayer(String layerurl,String layername) {
  super(layerurl);
  this.layerurl = layerurl;
  this.layername = layername;
  initLayer();
 }
 protected void initLayer() {
  if(getID()==0){
   this.nativeHandle = create();
  }
  try {
   SpatialReference localSpatialReference = SpatialReference.create(WKID);
   setDefaultSpatialReference(localSpatialReference);
   Envelope localEnvelope = new Envelope(371987.18333999999D,
     252920.58593D, 624459.12035999994D, 423400.07714000001D);
   setFullExtent(localEnvelope);
   Point localPoint = new Point(0.0D, 458793.07714);
   double[] arrayOfDoublescale = d;
   double[] arrayOfDoubleres = c;
   int k = d.length;
   TiledServiceLayer.TileInfo localTileInfo = new TiledServiceLayer.TileInfo(
     localPoint, arrayOfDoublescale, arrayOfDoubleres, k, 96,
     256, 256);
   setTileInfo(localTileInfo);
   super.initLayer();
   return;
  } catch (Exception localException) {
   localException.printStackTrace();
  }
 }

@Override
 protected byte[] getTile(int level, int col, int row) throws Exception {
  // TODO Auto-generated method stub
  int nrow  = (int) (Math.floor((458400.07714) * res[level] / 256) - row);
  String strUrl = layerurl + "x=" + col + "&y=" + nrow + "&z=" + level
    + "&type=ic&layer="+layername+"";
  HashMap<String, String> localHashMap = new HashMap<String, String>();
  byte[] bytes = a.a(strUrl, localHashMap);
  return bytes;
 }
}

重写TiledServiceLayer实现Arcgis访问Mapabc地图服务 (转载)的更多相关文章

  1. 服务器重启后导致访问ArcServer地图服务须登录

    问题状况: 重启服务器后,在访问网站的地图服务时会提示登录,输入各种密码账号都不好用 解决方法: 通过进入[服务管理器],找到ArcGISServer的服务,重新启动该服务就可以.

  2. ArcGis server发布地图服务

    ArcGIS server发布服务: 首先修改地图文档属性中的关联默认数据库 最后使用分享将地图服务发布到server上,是地图服务可以使用: 注意一定要勾选 Feature Access选项 fea ...

  3. ArcGIS Server浏览地图服务无响应原因分析说明

    1.问题描述 从4月17号下午5时起,至18号晚9点,客户单位部分通过ArcGIS Server发布的地图服务(该部分地图服务的数据源为数据库SJZX)无法加载浏览,表现为长时间无响应.同时,通过Ar ...

  4. ArcGIS pro 发布地图服务(一)动态地图服务

    1.软件:arcgis pro 2.4  数据:.mxd文档. 2.导入mxd文档. 3.登录portal账号 4.分析—发布 5.在server中的地图服务 JavaScript api 查看 6. ...

  5. ArcGIS Server SOE地图服务重启特别卡

    ArcGIS Server 服务器端扩展,SOE代码调试时,需要经常重新编译.替换地图服务中的扩展, 由于未知问题,本地开发环境包含SOE的地图服务,每次重启都需要耗费相当长的时间,大体上20多分钟, ...

  6. arcgis访问百度地图

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. ArcGIS发布地图服务

    一般做完矢量图绘制工作后,生成的.mxd文件只能在ArcMap中查看,为了方便用户进行浏览,我们需要发布地图服务. 目前为止最常用的就是在ArcGIS中发布地图服务. 今天也算是在做“发布地图服务”的 ...

  8. ArcGIS发布地图服务后直接调用查看方法

    做项目配置了一个地理底图,不知道有没有问题,如何给到客户查看并确认呢? 首先在ArcGIS上发布该地图: 打开地图后->文件->共享为->服务…… 发布成功后,得到可以访问的地图服务 ...

  9. [转]ArcGIS移动客户端离线地图的几种解决方案

    原文地址:http://blog.chinaunix.net/uid-10914615-id-3023158.html 移动GIS中,通常将数据分为两大类:basemap layer和operatio ...

随机推荐

  1. MySQL忘记密码,或:root密码重置报错:mysqladmin: connect to server at 'localhost' failed的解决方案

    MySQL root密码重置报错:mysqladmin: connect to server at 'localhost' failed的解决方案   1  登陆失败,mysqladmin修改密码失败 ...

  2. Debian

    一.简介 https://zh.wikipedia.org/wiki/Debian 二.下载 https://www.debian.org/ 三.配置 1)挂载iso镜像 mount /dev/cdr ...

  3. Mac/Linux 定时运行命令行

    想要开机运行的话可以通过 mac 自带的 Automator 将要运行的命令打包成一个app,用后在用户组的“登录时启动”列表里加上那个app. 但是想要定时运行就不能这么做了,要用上一个叫cront ...

  4. C之五子棋

    #include <stdio.h> #include <stdlib.h> #define N 15 ][N + ] = { }; ; void initGame(void) ...

  5. 如何用ZBrush确定头部五官的位置

    之前和大家讲过如何在ZBrush中确定头部雕刻,在第一阶段中面数很少,只能将大型体雕刻出来,由于面数太少不能进行下面的雕刻.接下来第二阶段的调整,需要重新分布模型表面的网格,增加面数,进行五官的位置的 ...

  6. 网页中插入FLASH(swf文件),并且让Flash不遮挡HTML元素

    一:网页中插入flash代码如下:  当然里面的很多属性可以去掉,根据具体的需求而定.  我们在网页中经常遇到播放flash,要正常播放flash就要用到OBJECT和EMBED这两个标签.鉴于火狐及 ...

  7. Adobe Scout 入门

    http://www.adobe.com/cn/devnet/scout/articles/adobe-scout-getting-started.html Adobe Scout 是新一代 Flas ...

  8. Linux下利用CGroup控制CPU、内存以及IO的操作记录

    CGroup及其子系统的介绍在这里就不赘述了,可以参考:Linux下CGroup使用说明梳理废话不多说,这里记录下利用CGroup控制CPU.内存以及IO的操作记录: libcgroup工具安装这里以 ...

  9. 1445 送Q币

    1445 送Q币  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 一次在玩网络游戏的过程中,在 ...

  10. 【原创】有关Silverlight中“DataGrid中级联动态绑定父/子ComboBox ”的示例。

    尝试了很多种方案,由于Datagrid动态生成的每行父子comboBox的Name的不确定性,给父ComboBox绑定事件中获取 子ComboBox很难根据Name获取到. 花了不少时间和公司同事商讨 ...