首页 > 其他分享 >wpf GMap

wpf GMap

时间:2024-08-13 09:05:19浏览次数:13  
标签:mapControl return string pos GMap override wpf public

AMapProviderBase

public abstract class AMapProviderBase : GMapProvider
{
    public AMapProviderBase()
    {
        MaxZoom = null;
        RefererUrl = "http://www.amap.com/";
        //Copyright = string.Format("©{0} 高德 Corporation, ©{0} NAVTEQ, ©{0} Image courtesy of NASA", DateTime.Today.Year);    
    }

    public override PureProjection Projection
    {
        get { return MercatorProjection.Instance; }
    }

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

public class AMapProvider : AMapProviderBase
{
    public static readonly AMapProvider Instance;

    readonly Guid id = new Guid("EF3DD303-3F74-4938-BF40-232D0595EE88");
    public override Guid Id
    {
        get { return id; }
    }

    readonly string name = "AMap";
    public override string Name
    {
        get
        {
            return name;
        }
    }

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

    public override PureImage GetTileImage(GPoint pos, int zoom)
    {
        try
        {
            string url = MakeTileImageUrl(pos, zoom, LanguageStr);
            return GetTileImageUsingHttp(url);
        }
        catch (Exception ex)
        {
            return null;
        }
    }

    string MakeTileImageUrl(GPoint pos, int zoom, string language)
    {
        var num = (pos.X + pos.Y) % 4 + 1;
        //string url = string.Format(UrlFormat, num, pos.X, pos.Y, zoom);
        string url = string.Format(UrlFormat, pos.X, pos.Y, zoom);
        return url;
    }

    //static readonly string UrlFormat = "http://webrd04.is.autonavi.com/appmaptile?x={0}&y={1}&z={2}&lang=zh_cn&size=1&scale=1&style=7";
    static readonly string UrlFormat = "http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={0}&y={1}&z={2}";
}

界面上添加控件

<usercontrol:MapControl
    x:Name="mapControl"
    Panel.ZIndex="100"
    MaxZoom="24"
    MinZoom="1"
    Zoom="13" />

在界面的Loaded中添加

  mapControl.CacheLocation = Environment.CurrentDirectory + "\\GMapCache\\"; //缓存位置
  //mapControl.MapProvider = GMapProviders.GoogleChinaMap; // 这里需要填写地图提供商,官方默认包含Google地图
  //mapControl.MapProvider = GaoDeimgProvider.Instance; // 这里需要填写地图提供商,官方默认包含Google地图
  mapControl.MapProvider = AMapProvider.Instance; // 这里需要填写地图提供商,官方默认包含Google地图
  mapControl.MinZoom = 2;  //最小缩放
  mapControl.MaxZoom = 17; //最大缩放
  mapControl.Zoom = 5;     //当前缩放 
  mapControl.ShowCenter = true; //不显示中心十字点
  mapControl.DragButton = MouseButton.Left; //左键拖拽地图
  mapControl.Position = new PointLatLng(32.064, 118.704); //地图中心位置:珠  海

标签:mapControl,return,string,pos,GMap,override,wpf,public
From: https://www.cnblogs.com/ives/p/18356163

相关文章

  • wpf 如何7步写一个badge控件
    首先看一下效果: 任意控件可以附加一个文字在控件的右上角,并带有红色背景第一步,新建一个空的wpf项目:第二步,创建一个类,取名为badge:第三步,将badge的父类设置成  System.Windows.Documents.AdornerpublicclassBadge:Adorner{publicBadge(UIElemen......
  • 界面控件DevExpress WPF v24.1系统环境配置要求
    DevExpressWPF 拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中......
  • wpf 使用razor
    WPFBlazorChat\RazorViews\Counter.razor<h1>Counter</h1><p>好开心,你点我了,现在是:<spanstyle="color:red;">@currentCount</span></p><buttonclass="btnbtn-primary"@onclick="IncrementCount"&g......
  • wpf项目如何使用blazor组件
    依然使用上面的工程,添加Blazor支持,此部分参考微软文档生成WindowsPresentationFoundation(WPF)Blazor应用,本小节快速略过。2.1编辑工程文件WPFBlazorChat.csproj在项目文件的顶部,将SDK更改为Microsoft.NET.Sdk.Razor。添加节点<RootNameSpace>WPFBlazorChat</RootN......
  • 简单在 WinUI 仿造 WPF 的 ColumnDefinition SharedSizeGroup 共享列宽功能
    本文将告诉大家如何在WinUI3或UNO里面,仿造WPF的ColumnDefinitionSharedSizeGroup共享列宽功能本文的实现代码是大量从https://github.com/Qiu233/WinUISharedSizeGroup抄的,感谢大佬提供的代码。我在此基础上简化了对Behavior的依赖,在本文末尾放上了全部代码的下载......
  • WPF 备忘录
    关于WPF元素的官方文档目录关于WPF元素的官方文档ApplicationOnStartup(StartupEventArgse)WindoweventWindow.ClosingEventDataGridApplicationWPF中的Application对象用来进行一些全局的行为和操作,并且每个Domain(应用程序域)中仅且只有一个Application实例存在。WPFApp......
  • DevExpress WPF中文教程:如何在GridControl中对数据排序、分组、过滤?
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • WPF PopUp的简单使用
    <Windowx:Class="WpfApp1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.c......
  • wpf 中的三个 UnhandledException
    结构化异常处理在异常点生成异常的结构体,异常分发WPF中的三个Excption处理函数AppDomain::UnhandledException事件属性UI线程和Thread实例的异常会触发该事件。Application::DispatcherUnhandledExcetion事件属性UI线程异常会触发该事件。如果事件的IsHandle=false,异......
  • 第十四章 -------------------WPF 和MVVM实战
    我的感悟:在编程时我刚开始是使用的MFC,现在回想起来当时我是怎么把程序运行起来的,我记得我当时是在View里面操作数据,在View里面操作Fream。可以说是糟糕的一塌糊涂,后期维护也是相当困难,这一点我现在回想起来想吐。------------------------------------------------------------......