ArcGIS Server flex加载google地图,早已不是什么技术问题。只不过今天结合着项目,底图和项目数据的坐标系统始终没有匹配。即使匹配了,也达不到精度问题。最后,且算是为客户多奉献了一些,将他们的数据重新转换为Web Mector系统,以和Google底图相匹配。囧~~他们的数据量不是有点大,那是相当的大~~
言归正传,ArcGIS Server加载google地图,只需要重写TiledMapServiceLayer类即可。关键代码如下:
package util
{
import com.esri.ags.SpatialReference;
import com.esri.ags.geometry.Extent;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.layers.TiledMapServiceLayer;
import com.esri.ags.layers.supportClasses.*;
import flash.net.URLRequest;
//扩展TiledMapServiceLayer图层实现加载google地图
public class GoogleMapLayer extends TiledMapServiceLayer
{
private var _tileInfo:TileInfo=new TileInfo();
private var _baseURL:String="";
public function GoogleMapLayer()
{
super();
buildTileInfo();
setLoaded(true);
}
override public function get fullExtent():Extent
{
return new Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, new SpatialReference(102113));
}
override public function get initialExtent():Extent
{
return new Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, new SpatialReference(102113));
}
override public function get spatialReference():SpatialReference
{
return new SpatialReference(102113);
}
override public function get tileInfo():com.esri.ags.layers.supportClasses.TileInfo
{
return _tileInfo;
}
//获取URL
override protected function getTileURL(level:Number, row:Number, col:Number):URLRequest
{
var url:String="http://mt0.google.cn/vt/v=w2.114&hl=zh-CN&gl=cn&" + "x=" + col + "&" +
"y=" + row + "&" + "z=" + level+ "&s=";
return new URLRequest(url);
}
private function buildTileInfo():void
{
_tileInfo.height=256;
_tileInfo.width=256;
_tileInfo.origin=new MapPoint(-20037508.342787, 20037508.342787);
_tileInfo.spatialReference=new SpatialReference(102113);
_tileInfo.lods = [new LOD(0, 156543.033928, 591657527.591555),
new LOD(1,78271.5169639999, 295828763.795777), new LOD(2, 39135.7584820001, 147914381.897889),
new LOD(3,19567.8792409999, 73957190.948944), new LOD(4, 9783.93962049996, 36978595.474472),
new LOD(5,4891.96981024998, 18489297.737236), new LOD(6, 2445.98490512499, 9244648.868618),
new LOD(7,1222.99245256249, 4622324.434309), new LOD(8, 611.49622628138, 2311162.217155),
new LOD(9,305.748113140558, 1155581.108577), new LOD(10, 152.874056570411, 577790.554289),
new LOD(11,76.4370282850732, 288895.277144), new LOD(12, 38.2185141425366, 144447.638572),
new LOD(13,19.1092570712683, 72223.819286), new LOD(14, 9.55462853563415, 36111.909643),
new LOD(15,4.77731426794937, 18055.954822), new LOD(16, 2.38865713397468, 9027.977411),
new LOD(17, 1.19432856685505, 4513.988705), new LOD(18, 0.597164283559817, 2256.994353),
new LOD(19, 0.298582141647617, 1128.497176)];
}
}
}
好了,就可以看到效果啦[img][/img]
- 大小: 359.5 KB
分享到:
相关推荐
利用arcgis api加载高德地图的代码
flex arcgis 加载天地图2.0地图源码
arcgis for js加载百度地图高德地图天地图
ArcGIS API 4.10加载谷歌地图
Arcgis server flex FeatureLayer 渲染用法
arcgis server flex API 函数及调用实例 FLEX 地图实例
Arcgis server for flex 如何调用google地图
Arcgis Server 动态加载图层 Arcgis Server 9.3 C#
里面包括调用百度地图的简单例子的实现类,和一篇详细介绍的文档,都是自己写的,代码类实现基于网上的一段代码。
此源码主要是提供天地图的加载方式,主要有天地图标注,矢量地图,影像加载,主要是参考天地图服务地址:http://service.tianditu.gov.cn/
arcgis在线图层加载插件,可以加载百度地图、高德地图等在线地图。MapOnline地图插件_升级版 v1.2,新增了“GoogleEarth地图”与“历史地图”,可以“加载自定义切片”,可以“以切片的方式访问WMS服务”,比ArcMap...
Arcgis在线谷歌地图(地图)2023年最新版(可用),加载在arcgis中可以作为地图使用,不包含地图标准,纯影像图。
ArcGIS Server Flex 应用视频
如何在OsgEarth中加载谷歌卫星地图的ArcGISServer服务教程
ArcGIS Server Flex API 1.3 离线帮助
扩展arcgis for flex api中的wmts,调用天地图发布的地图服务。
List of ArcGIS API for Flex 1.2 packages. See the Adobe Flex 3 Language Reference at http://livedocs.adobe.com/flex/3/langref/ for Adobe Flex 3 packages. Package Description ...
研究了好几天终于研究出来了,教你从瓦片下载到离线加载轻松实现arcgis加载google离线地图。帮你学习少走弯路!
ArcGIS Server开发指南基于Flex和.Net数据随书光盘内容.分两个文件上传。
利用ArcGIS API for JavaScript最新版本【3.23】加载在线谷歌地图,谷歌影像(包括标注)