Arcgis api For silverlight 加载QQ地图

原文 http://www.cnblogs.com/thinkaspx/archive/2012/11/07/2759079.html

//本篇博客仅在技术上探讨可行性 

  //如果要使用Q 地图,请联系相关厂商

public class QQMapLayer : TiledMapServiceLayer
    {
        private const double cornerCoordinate = 20037508.342787;
        public override void Initialize()
        {

            this.FullExtent = new ESRI.ArcGIS.Client.Geometry.Envelope(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787)
            {
                SpatialReference = new SpatialReference(102113)
            };
            // This layer's spatial reference
            this.SpatialReference = new SpatialReference(102113);
            // Set up tile information. Each tile is 256x256px, 19 levels.
            this.TileInfo = new TileInfo()
            {
                Height = 256,
                Width = 256,
                Origin = new MapPoint(-cornerCoordinate, cornerCoordinate) { SpatialReference = new ESRI.ArcGIS.Client.Geometry.SpatialReference(102113) },
                Lods = new Lod[20]
            };
            // Set the resolutions for each level. Each level is half the resolution of the previous one.
            double[] resolution = new double[]
            {
                156543.033928,
                78271.5169639999,
                39135.7584820001,
                19567.8792409999,
                9783.93962049996,
                4891.96981024998,
                2445.98490512499,
                1222.99245256249,
                611.49622628138,
                305.748113140558,
                152.874056570411,
                76.4370282850732,
                38.2185141425366,
                19.1092570712683,
                9.55462853563415,
                4.77731426794937,
                2.38865713397468,
                1.19432856685505,
                0.597164283559817,
                0.298582141647617
            };//cornerCoordinate * 2 / 256;//
            for (int i = 0; i < TileInfo.Lods.Length; i++)
            {
                //TileInfo.Lods[i] = new Lod() { Resolution = Math.Pow(2, 18 - i) };
                TileInfo.Lods[i] = new Lod() { Resolution = resolution[i] };

            }

            // Call base initialize to raise the initialization event
            base.Initialize();
        }
        private string[] _subDomains = new string[] { "p0", "p1", "p2", "p3" };
        private int[] scope = new int[] { 0, 0, 0, 0, 0, 3, 0, 3, 0, 3, 0, 3, 0, 7, 0, 7, 0, 15, 0, 15, 0, 31, 0, 31, 0, 63, 4, 59, 0, 127, 12, 115, 0, 225, 28, 227, 356, 455, 150, 259, 720, 899, 320, 469, 1440, 1799, 650, 929, 2880, 3589, 1200, 2069, 5760, 7179, 2550, 3709, 11520, 14349, 5100, 7999, 23060, 28689, 10710, 15429, 46120, 57369, 20290, 29849, 89990, 124729, 41430, 60689, 184228, 229827, 84169, 128886 };
        public override string GetTileUrl(int level, int row, int col)
        {
            var subdomain = this._subDomains[(level + col + row) % this._subDomains.Length];

            string baseUrl = "http://{0}.map.qq.com/maptiles/{1}";
            //
            var f = level * 4;
            if (f == this.scope.Length) return "";
            var i = this.scope[f++];

            var j = this.scope[f++];

            var l = this.scope[f++];

            var scope = this.scope[f];

            var tileNo = "";

            if (col >= i && col <= j && row >= l && row <= scope)
            {

                row = (int)(Math.Pow(2, level) - 1 - row);

                tileNo = level + "/" + Math.Floor(col / 16) + "/" + Math.Floor(row / 16) + "/" + col + "_" + row + ".png";

            }

            return string.Format(baseUrl, subdomain, tileNo);
        }
    }
时间: 2024-10-28 23:13:48

Arcgis api For silverlight 加载QQ地图的相关文章

ArcGIS API for Silverlight加载google地图(后续篇)

原文:ArcGIS API for Silverlight加载google地图(后续篇) 之前在博客中(http://blog.csdn.net/taomanman/article/details/8019687)提到的加载google地图方案,因为google地址问题,看不到图了,发现是url地址变换造成的. 现将如下三个类公布出来,源码如下:   using System; using System.Net; using System.Windows; using System.Window

解决ArcGIS API for Silverlight 加载地图的内外网访问问题

原文:解决ArcGIS API for Silverlight 加载地图的内外网访问问题 先上一个类,如下: public class BaseClass { public static string getFullUri(string oldUriString) { string newUriString = oldUriString; //处理相对地址============================================================ if (newUri

silverlight加载百度地图

问题描述 silverlight加载百度地图 如何在arcgis for silverlight中加载百度地图和搜搜地图

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

原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层                                                                                                    第二篇.Silverlight客户端调用GP服务          利用ArcGIS API for Silverlight实现GP服务调用,这里的雨量数据是通过一个WebService获取而来,主要信息是雨量站点

ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件

原文:ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件 先看效果图,然后上代码: <UserControl x:Class="MapClient.PicMusic" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx

ArcGIS API for Silverlight 实现修改地图上的工程点位置

原文:ArcGIS API for Silverlight 实现修改地图上的工程点位置 #region 处理工程点点击编辑相关事件 public Graphic editgraphics = null; //待编辑的Graphics图层 public Graphic oldgraphics = null; //原先Graphics图层 public Symbol symbolold = null; /// <summary> /// 在地图上点击编辑点处理事件 /// </summary

arcgis api for silverlight使用google map等多个在线地图

原文 http://blog.csdn.net/leesmn/article/details/6820245 无可否认,google map实在是很漂亮.可惜对于使用arcgis api for silverlight的我们来说,无法使用它的确不爽.虽然,arcgis api for silverlight可以使用bing map.但是bing map中国地区的地图很差,城市道路信息几乎没有.稍微得到些许安慰的是最新版本(比方2.2版本)可以支持OpenStreetMap,效果比bing map

ArcGIS API for Silverlight之配准JPG图片地图文字倾斜解决方案

原文:ArcGIS API for Silverlight之配准JPG图片地图文字倾斜解决方案 根据实际JPG图片进行配准后,发布的地图,利用ArcGIS API for Silverlight在网页上显示的时候,原先的文字总有倾斜的现象,如何解决?   图一.配准后有文字倾斜现象的地图 解决方案如下:      <esri:Map x:Name="myMap" IsLogoVisible="False" ZoomDuration="0:00:01&

ArcGIS API for Silverlight开发入门

你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我 都没关系.但你不能否认3G是一种趋势,最终我们每个人都会被包裹在3G网络中.1100也不是一成不变,没准哪天为了打击犯罪,会在你的1100上强制 装上GPS.GIS工作既然建立在计算机的基础上,当然也得随着IT行业与时俱进.       看看现在计算机应用的趋势吧.云(计算),这个东西可讲不清楚,因为云嘛,飘忽不定的.不过可以这样来看它,以后计算机网络上就有一坨(或者几坨)万能的 云,有什么需求云都可以满足我们,