arcgis jsapi 调用google地区服务
做地理信息系统(GIS)项目,除了实现功能用户体验度要好之外,最重要的是地图渲染效果更要好。很多时候苦于数据的完整性和对于配图的审美观,程序猿们都很难配出好看的地图效果。基于上述一般直接调用google的地图服务,包括矢量地图,地形地图和影像地图。这样就不用花大力气关注于数据的问题,只需要把地图的操作功能实现就行。下面来说说如何基于arcgis js api 调用google的地图服务。
首先我们需要知道google地图服务的地址:
http://mt.google.cn/vt/lyrs=s@112&hl=zh-CN&gl=cn //卫星地图服务
http://mt.google.cn/vt/lyrs=h@177000000&hl=zh-CN&gl=cn //地区名称矢量地图服务
http://mt.google.cn/vt/lyrs=m@112&hl=zh-CN&gl=cn //矢量地图服务
jsapi 初始化google地图服务实现代码:
initGoogleMapLayer:function(){
dojo.declare("GoogleMapLayer", esri.layers.TiledMapServiceLayer, { // create WMTSLayer by extending esri.layers.TiledMapServiceLayer
constructor: function(){
this.spatialReference = new esri.SpatialReference({
wkid: 102113
});
this.initialExtent = new esri.geometry.Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, this.spatialReference);
this.fullExtent = new esri.geometry.Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, this.spatialReference);
//
this.tileInfo = new esri.layers.TileInfo({
"dpi": "90.71428571427429",
"format": "image/png",
"compressionQuality": 0,
"spatialReference": {
"wkid": "3857"
},
"rows": 256,
"cols": 256,
"origin": {
"x": -20037508.342787,
"y": 20037508.342787
},
// Scales in DPI 96
"lods": [{"level": 0,"scale": 591657527.591555,"resolution": 156543.033928
}, {"level": 1,"scale": 295828763.795777,"resolution": 78271.5169639999
}, {"level": 2,"scale": 147914381.897889,"resolution": 39135.7584820001
}, {"level": 3,"scale": 73957190.948944,"resolution": 19567.8792409999
}, {"level": 4,"scale": 36978595.474472,"resolution": 9783.93962049996
}, {"level": 5,"scale": 18489297.737236,"resolution": 4891.96981024998
}, {"level": 6,"scale": 9244648.868618,"resolution": 2445.98490512499
}, {"level": 7,"scale": 4622324.434309,"resolution": 1222.99245256249
}, {"level": 8,"scale": 2311162.217155,"resolution": 611.49622628138
}, {"level": 9,"scale": 1155581.108577,"resolution": 305.748113140558
}, {"level": 10,"scale": 577790.554289,"resolution": 152.874056570411
}, {"level": 11,"scale": 288895.277144,"resolution": 76.4370282850732
}, {"level": 12,"scale": 144447.638572,"resolution": 38.2185141425366
}, {"level": 13,"scale": 72223.819286,"resolution": 19.1092570712683
}, {"level": 14,"scale": 36111.909643,"resolution": 9.55462853563415
}, {"level": 15,"scale": 18055.954822,"resolution": 4.77731426794937
}, {"level": 16,"scale": 9027.977411,"resolution": 2.38865713397468
}, {"level": 17,"scale": 4513.988705,"resolution": 1.19432856685505
}, {"level": 18,"scale": 2256.994353,"resolution": 0.597164283559817
}, {"level": 19,"scale": 1128.497176,"resolution": 0.298582141647617
}]
});
this.loaded = true;
this.onLoad(this);
},
getTileUrl: function(level, row, col){
return "http://mt" + (col % 4) + ".google.cn/vt/lyrs=s@112&hl=zh-CN&gl=cn&" + "x=" + col + "&" +
"y=" +
row +
"&" +
"z=" +
level +
"&s=";
}
});
dojo.declare("GoogleMapAnooLayer", esri.layers.TiledMapServiceLayer, { // create WMTSLayer by extending esri.layers.TiledMapServiceLayer
constructor: function(){
this.spatialReference = new esri.SpatialReference({
wkid: 102113
});
this.initialExtent = new esri.geometry.Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, this.spatialReference);
this.fullExtent = new esri.geometry.Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, this.spatialReference);
//
this.tileInfo = new esri.layers.TileInfo({
"dpi": "90.71428571427429",
"format": "image/png",
"compressionQuality": 0,
"spatialReference": {
"wkid": "3857"
},
"rows": 256,
"cols": 256,
"origin": {
"x": -20037508.342787,
"y": 20037508.342787
},
// Scales in DPI 96
"lods": [{"level": 0,"scale": 591657527.591555,"resolution": 156543.033928
}, {"level": 1,"scale": 295828763.795777,"resolution": 78271.5169639999
}, {"level": 2,"scale": 147914381.897889,"resolution": 39135.7584820001
}, {"level": 3,"scale": 73957190.948944,"resolution": 19567.8792409999
}, {"level": 4,"scale": 36978595.474472,"resolution": 9783.93962049996
}, {"level": 5,"scale": 18489297.737236,"resolution": 4891.96981024998
}, {"level": 6,"scale": 9244648.868618,"resolution": 2445.98490512499
}, {"level": 7,"scale": 4622324.434309,"resolution": 1222.99245256249
}, {"level": 8,"scale": 2311162.217155,"resolution": 611.49622628138
}, {"level": 9,"scale": 1155581.108577,"resolution": 305.748113140558
}, {"level": 10,"scale": 577790.554289,"resolution": 152.874056570411
}, {"level": 11,"scale": 288895.277144,"resolution": 76.4370282850732
}, {"level": 12,"scale": 144447.638572,"resolution": 38.2185141425366
}, {"level": 13,"scale": 72223.819286,"resolution": 19.1092570712683
}, {"level": 14,"scale": 36111.909643,"resolution": 9.55462853563415
}, {"level": 15,"scale": 18055.954822,"resolution": 4.77731426794937
}, {"level": 16,"scale": 9027.977411,"resolution": 2.38865713397468
}, {"level": 17,"scale": 4513.988705,"resolution": 1.19432856685505
}, {"level": 18,"scale": 2256.994353,"resolution": 0.597164283559817
}, {"level": 19,"scale": 1128.497176,"resolution": 0.298582141647617
}]
});
this.loaded = true;
this.onLoad(this);
},
getTileUrl: function(level, row, col){
return "http://mt" + (col % 4) + ".google.cn/vt/lyrs=h@177000000&hl=zh-CN&gl=cn&" + "x=" + col + "&" +
"y=" +
row +
"&" +
"z=" +
level +
"&s=";
}
});
}
arcgis jsapi调用初始化的google地图服务:
var googleMapLayer = new GoogleMapLayer();
map.addLayer(googleMapLayer);
通过上面的代码实现就能把google地图服务,添加到自己的项目中。
arcgis jsapi 调用google地区服务的更多相关文章
- OpenLayers调用arcgis server发布的地图服务
有两种方式可以调用arcgis server发布的地图服务,一种是rest,一种是wms. 地图的投影为900913,arcgis server为10.0版本,地图服务的空间参考为3857. 与 ...
- arcgis engine 调用arcgis server服务
首先需要添加两个引用: using ESRI.ArcGIS.GISClient;using ESRI.ArcGIS.DataSourcesRaster; /// <summary> /// ...
- OpenLayers调用ArcGIS Server发布的WFS服务
OpenLayers调用ArcGIS Server发布的WFS服务 原创: 蔡建良 2013-08-20 一. 开发环境 1) Openlayers2.13+arcgis server9.3 2) W ...
- 怎样用Google APIs和Google的应用系统进行集成(3)----调用Google 发现(Discovery)API的RESTful服务
说了这么多,那么首先同意我以Google Discovery RESTful服务为例,给大家演示怎样用最普通的Java代码调用Google Discovery RESTful服务. 引言: 在&quo ...
- ArcGIS API for JavaScript(2)-ArcGIS Server发布要素图层服务
1.前言 上一篇该系列的文章我们主要讲了一下基础Web地图搭建,这篇我们主要讲一下ArcGIS Server发布服务,并且如何调用服务.将自己的数据加载到Web地图当中来,实现Web端浏览数据. 2. ...
- arcgis jsapi接口入门系列(3):各种类型的图层添加
这里说的tomcat切片,是指arcgis server切片后,把切片图片文件用tomcat发布(其他任意web服务器发布都行) //添加tomcat切片图层 addTomcatTileLayer: ...
- c#两种方式调用google地球,调用COM API以及调用GEPLUGIN 与js交互,加载kml文件,dae文件。将二维高德地图覆盖到到三维谷歌地球表面。
网络上资源很多不全面,自己在开发的时候走了不少弯路,在这里整理了最全面的google全套开发,COM交互,web端交互.封装好了各种模块功能. 直接就可以调用. 第一种方式:调用COMAPI实现调用g ...
- Salesforce Apex页面中调用远端网络服务
本文介绍了Salesforce Apex页面中调用远端网络服务的实现过程. ### 注册远端网络服务 在使用Apex代码调用远端网络服务之前,首先需要在Salesforce中注册远端网络服务地址, 本 ...
- Android按需添加Google Play服务
以前无论使用何种Google Play服务,都是直接在gradle文件中引用一个库. compile 'com.google.android.gms:play-services:9.4.0' 这直接导 ...
随机推荐
- HTTP实现长连接(TTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持Connection: keep-alive)
HTTP实现长连接 HTTP是无状态的 也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接.如果客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web ...
- uva 816 BFS求最短路的经典问题……
一开始情况没有考虑周全,直接WA掉了, 然后用fgets()出现了WA,给改成scanf就AC了 题目不是很难,用心就好…… #include <iostream> #include &l ...
- 【Cocos2d-X游戏实战开发】捕鱼达人之单例对象的设计(二)
本系列学习教程使用的是cocos2d-x-2.1.4(最新版为cocos2d-x-2.1.5) 博主发现前两个系列的学习教程被严重抄袭,在这里呼吁大家请尊重开发者的劳动成果, 转载的时候请务必注 ...
- 【从零学习openCV】opecv操作像素
1. 存取像素值 在opencv中能够直接对cv::Mat类型的图像调用at函数读取或赋值某个像素,我们用个简单的案例来说明: //在一张图像上增加椒盐噪声,image为输入图像.n为噪点个数 voi ...
- flashcache中应用device mapper机制
Device Mapper(DM)是Linux 2.6全面引入的块设备新构架,通过DM可以灵活地管理系统中所有的真实或虚拟的块设备. DM以块设备的形式注册到Linux内核中,凡是挂载(或者说“映射” ...
- Swift - 各种手势检测大全(UIGestureRecognizer及其子类)
UIGestureRecognizer有许多子类,用于监听一些常见的手势事件,这些子类主要有: 1,UISwipeGestureRecognizer:滑动(快速移动) 1 2 3 4 5 6 7 8 ...
- 《c陷阱与缺陷》笔记--移位运算
#include <stdio.h> int main(void){ int a = 2; a >> 32; a >> -1; a << 32; a & ...
- Binders 与 Window Tokens(窗体令牌)
原文地址:http://www.androiddesignpatterns.com/2013/07/binders-window-tokens.html 安卓的一项核心设计思想是希望能提供一个不须要依 ...
- Delphi “Invalid floating point operation.”错误的解决方法(使用System单元提供的Set8087CW函数禁用浮点异常)
这两天用webbrower写东西,有时候打开SSL加密网站时会出现”Invalid floating point operation.”的错误,上网搜了下,把解决方法贴上. 导致原因 在Delphi2 ...
- RBAC用户角色权限设计方案
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用 户-角色 ...