C# GMap下提供一个高德地图

using System;
using GMap.NET.Internals;
using GMap.NET.Projections;

namespace GMap.NET.MapProviders
{
    public class AMapProvider : AMapProviderBase
    {
        private readonly string name = "AMap";
        private readonly string language = "zh_cn";
        private readonly Guid id = new Guid("F81F5FB4-0902-4686-BF5B-B2B1E4D47922");
        public static readonly AMapProvider Instance;
        private Random ran = new Random();
        private static string UrlFormat = "http://webrd0{0}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={1}&y={2}&z={3}&scale=1&ltype=3";
        public string Caption
        {
            get
            {
                return "高德地图";
            }
        }
        public override Guid Id
        {
            get { return this.id; }
        }

        public override string Name
        {
            get { return this.name; }
        }

        static AMapProvider()
        {
            Instance = new AMapProvider();
        }
        public AMapProvider()
        {

        }

        public override PureImage GetTileImage(GPoint pos, int zoom)
        {
            string url = MakeTileImageUrl(pos, zoom, language);
            return GetTileImageUsingHttp(url);
        }
        //http://wprd0{0}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={1}&y={2}&z={3}&scl=2&ltype=3
        private string MakeTileImageUrl(GPoint pos, int zoom, string language)
        {
            int serverID = ran.Next(1, 5);//1-4
            return string.Format(UrlFormat, 4, pos.X, pos.Y, zoom);
        }
    }

    public abstract class AMapProviderBase : GMapProvider
    {
        protected GMapProvider[] overlays;
        public AMapProviderBase()
        {
            RefererUrl = "http://www.amap.com/";
            Copyright = string.Format("©{0} 高德地图 GPRS(@{0})", DateTime.Today.Year);
            MinZoom = 1;
            MaxZoom = 20;
        }

        public override GMapProvider[] Overlays
        {
            get
            {
                if (overlays == null)
                {
                    overlays = new GMapProvider[] { this };
                }
                return overlays;
            }
        }

        public override PureProjection Projection
        {
            get
            {
                return MercatorProjection.Instance;
            }
        }
    }
}
时间: 2024-10-11 01:50:35

C# GMap下提供一个高德地图的相关文章

GMap.Net中使用高德地图

GMap.Net是.Net下一个地图控件,可以基于Http协议加载各个公司的地图,如Google,Bing,ArcGIS的,主要原理是通过解析各个公司的地图服务的URL,传入相应的参数得到对应的切片底图(Tiled map),如一个高德地图的GMapProvider的实现如下: using System; using GMap.NET; using GMap.NET.MapProviders; using GMap.NET.Projections; namespace GMapProviders

(转)深入理解最强桌面地图控件GMAP.NET ---高德地图

前一篇介绍了GMAP.NET的理论基础,这篇介绍如何集成高德地图.高德地图自从为IOS6提供地图后,目前已经被大众所熟知了. 在我集成国内地图的经验来看,也是最符合墨卡托投影法的. 前面的相关文章链接: 深入理解最强桌面地图控件GMAP.NET --- 原理篇 深入理解最强桌面地图控件GMAP.NET --- SOSO地图 深入理解最强桌面地图控件GMAP.NET --- 百度地图 深入理解最强桌面地图控件GMAP.NET --- 初用 深入理解最强桌面地图控件GMAP.NET --- 初识 如

杂项-Map:高德地图

ylbtech-杂项-Map:高德地图 1.返回顶部 1. 开放分类:地图手机软件高德地图(Amap) 是国内一流的免费地图导航产品,也是基于位置的生活服务功能最全面.信息最丰富的手机地图,由国内最大的电子地图.导航和LBS服务解决方案提供商高德软件提供.公司2010年登陆美国纳斯达克全球精选市场(Nasdaq:AMAP).高德地图采用领先的技术为用户打造了最好用的"活地图".高德拥有导航电子地图甲级测绘资质.测绘航空摄影甲级资质和互联网地图服务甲级测绘资质"三甲"

使用高德地图绘制多边形区域

最近遇到一个需求,在网页上面编辑多边形的区域,并且需要能够判断一个点是否在这个多边形区域里面. 看了一下高德地图的jsapi,简单的做了一个demo. 1.你需要一个高德地图的账号,注册地址点击这里 2.登陆进去创建一个应用,这个时候就会给你一个对应的Key 3.查看高德地图的的demo,进入示例中心 4.学习一下左侧分类里面的 点标记 的示例,点标记里有涉及到高德地图事件,以及基础的类. 5.看完上面的,接下来我们接着学习折线,多边形,圆,这里我们就可以接触到AMap.Polygon这个类,以

Android学习之高德地图的通用功能开发步骤

这次分享的心得是高德地图的开发,基本上都是按照高德官网上的API文档来进行开发,废话不多说,走起. 第一步:申请高德地图的一个key,有了这个key我们的高德地图才可以正确用起来. 至于怎么申请高德地图的key,其实很简单,这里我大概说一下步骤:打开网页http://lbs.amap.com,注册一个高德地图API的一个账号(这里我声明一下,并不是给高德打广告,我只是分享一下我的这次学习经历而已),注册成功之后,会提示你成为开发者,成为开发者之后就能获取一个key了,获取key需要填写的内容,可

高德地图——一款功能强大的APP

软件介绍 高德地图 是国内一流的免费地图导航产品,也是基于位置的生活服务功能最全面. 高德地图信息最丰富的手机地图,由国内最大的电子地图.导航和LBS服务解决方案提供商高德软件(纳斯达克Amap)提供. 高德地图采用领先的技术为用户打造了最好用的"活地图",不管在哪.去哪.找哪.怎么去.想干什么一图在手,统统搞定,省电省流量更省钱,堪称最完美的生活出行软件,本土化评价. [最专业的地图导航]地图数据覆盖中国大陆及香港澳门,遍及337个地级2857个县级以上行政区划单位;导航支持GPS.

高德地图初始化 ios

最新版本的高德地图AMap_iOS_API_Lib_V2.1.1 2,这个可以到高德地图官网下载,并且按照官网给的步骤加载库,等我们加载完后要申请一个高德地图apiKey,这个非常容易.然后在我们想初始化地图的地方写上 [MAMapServices sharedServices].apiKey [email protected]"7e475dd3713565015cac7ea667977a63";这个key是我自己申请的  ,没有key的话地图不会显示出来,这样程序可以跑起来了   但

Openlayers 2.X加载高德地图

概述: 前面的有篇文章介绍了Openlayers 2.X下加载天地图,本节介绍Openlayers 2.X下加载高德地图. 实现效果: 高德地图 高德影像 图中:蓝色的省市边界为我本机发布的,能够与高德地图很好地结合在一起. 实现: 实现很简单的,主要是要获取地图的url,在Arcgis for js加载百度地图一文(http://blog.csdn.net/gisshixisheng/article/details/44853709)中做了介绍,在此不再赘述,实现代码如下: <!DOCTYPE

利用高德地图javascriptAPI做一个自己的地图

最近由于项目中需要制作一个地图,用来选择活动地点,我就花了两天利用高德地图的javascriptAPI自制了一个地图的demo.在这了记录一下我学习的过程. 一.进入高德地图官网,再找到高德地图的开放平台,我是做前端的,所以使用的是javascriptAPI. 地图的功能很多,使用API可以自己定制自己想要的功能.在使用前需要自己申请一个Key,引入API的时候会用到这个key. 二.详细看一下左边的那一列各个里面的内容,看完了基本就知道怎么回事了,它提供的javascriptAPI其实就是一个