校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 在WinForm和WPF中使用GMap.Net地圖插件簡單教程

在WinForm和WPF中使用GMap.Net地圖插件簡單教程

熱門標簽:地圖標注多少錢一張 電銷機器人 數據 宿遷智能外呼系統排名 云狐人工智能電話機器人 福州人工智能電銷機器人加盟 廣州銷售外呼系統定制 400電話辦理信任翰諾科技 怎樣給陜西地圖標注顏色 ai電銷機器人對貸款有幫助嗎

如何在WinForm中使用GMap.Net

項目主頁:https://greatmaps.codeplex.com/

下載GMap.Net,我下載的版本:greatmaps_81b71bf30091,編譯三個核心項目:

GMap.Net.Core:核心DLL

GMap.Net.WindowsForms:WinForm中使用的DLL

GMap.NET.WindowsPresentation:WPF中使用的DLL

在WinForm項目中使用GMap:

1、新建一個Visual C# 的Windows窗口程序。添加對GMap.Net.Core.DLL和GMap.Net.WindowsForms.DLL的引用。

2、在項目中添加一個UserControl,這里取名為MapControl,修改這個UserControl,使其繼承于GMapControl,這就是展示地圖的控件。修改如下:

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GMap.NET.WindowsForms;

namespace GMapWinFormDemo
{
    public partial class MapControl : GMapControl
    {
        public MapControl()
        {
            InitializeComponent();
        }
    }
}

3、編譯項目,在我們的Form設計窗口下,在工具箱中(tool box)里就可以看到這個MapControl,將這個MapControl加到Form中。

4、在主Form中添加相關的代碼如下:

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using GMap.NET;
using GMap.NET.MapProviders;
using GMap.NET.WindowsPresentation;

namespace GMapWPFDemo
{
    /// summary>
    /// MainWindow.xaml 的交互邏輯
    /// /summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            try
            {
                System.Net.IPHostEntry e = System.Net.Dns.GetHostEntry("www.google.com.hk");
            }
            catch
            {
                mapControl.Manager.Mode = AccessMode.CacheOnly;
                MessageBox.Show("No internet connection avaible, going to CacheOnly mode.", "GMap.NET Demo", MessageBoxButton.OK, MessageBoxImage.Warning);
            }

            mapControl.MapProvider = GMapProviders.GoogleChinaMap; //google china 地圖
            mapControl.MinZoom = 2;  //最小縮放
            mapControl.MaxZoom = 17; //最大縮放
            mapControl.Zoom = 5;     //當前縮放
            mapControl.ShowCenter = false; //不顯示中心十字點
            mapControl.DragButton = MouseButton.Left; //左鍵拖拽地圖
            mapControl.Position = new PointLatLng(32.064, 118.704); //地圖中心位置:南京

            mapControl.OnMapZoomChanged += new MapZoomChanged(mapControl_OnMapZoomChanged);
            mapControl.MouseLeftButtonDown += new MouseButtonEventHandler(mapControl_MouseLeftButtonDown);
        }

        void mapControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Point clickPoint = e.GetPosition(mapControl);
            PointLatLng point = mapControl.FromLocalToLatLng((int)clickPoint.X, (int)clickPoint.Y);
            GMapMarker marker = new GMapMarker(point);
            mapControl.Markers.Add(marker);
        }

        void mapControl_OnMapZoomChanged()
        {
        }
    }
}

5、編譯、運行項目就可以看到地圖,這里使用的是在線的Google中國的地圖,地圖控件的幾個主要屬性:

MapProvider:地圖服務的提供者。

MinZoom:最小縮放,最小可為1。

MaxZoom:最大縮放,最大為24.

Zoom:當前縮放。

ShowCenter:是否顯示中心點(最好為false,否則地圖中間會有一個紅色的十字)。

DragButton:那個鍵拖動地圖。

Position:地圖中心點位置。

地圖顯示如下,支持左鍵拖動,放大縮小,可以顯示左鍵的點擊經緯度。

如何在WPF中使用GMap.Net

1、新建一個Visual C# 的WPF程序。添加對GMap.Net.Core.DLL和GMap.NET.WindowsPresentation.DLL的引用。

2、由于WPF的UserControl不能修改繼承的基類,所以添加一個新的類,為MapControl.cs,代碼如下:

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GMap.NET.WindowsPresentation;

namespace GMapWPFDemo
{
    class MapControl : GMapControl
    {
    }
}

只需要繼承GMapControl就行了,基本功能都可以由GMapControl提供。

3、在我們的MainWindow.xaml中,添加項目的namespace:xmlns:src="clr-namespace:GMapWPFDemo",在XML代碼中添加對MapControl.cs的使用:

復制代碼 代碼如下:

Window x:Class="GMapWPFDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:src="clr-namespace:GMapWPFDemo"
        Title="MainWindow" Height="410" Width="618">
    Grid>
            GroupBox Name="mapgroup" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
            src:MapControl x:Name="mapControl" Zoom="13" MaxZoom="24" MinZoom="1" />
            /GroupBox>
    /Grid>
/Window>

4、在MainWindow中添加相關的代碼如下:

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using GMap.NET;
using GMap.NET.MapProviders;
using GMap.NET.WindowsPresentation;

namespace GMapWPFDemo
{
    /// summary>
    /// MainWindow.xaml 的交互邏輯
    /// /summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            try
            {
                System.Net.IPHostEntry e = System.Net.Dns.GetHostEntry("www.google.com.hk");
            }
            catch
            {
                mapControl.Manager.Mode = AccessMode.CacheOnly;
                MessageBox.Show("No internet connection avaible, going to CacheOnly mode.", "GMap.NET Demo", MessageBoxButton.OK, MessageBoxImage.Warning);
            }

            mapControl.MapProvider = GMapProviders.GoogleChinaMap; //google china 地圖
            mapControl.MinZoom = 2;  //最小縮放
            mapControl.MaxZoom = 17; //最大縮放
            mapControl.Zoom = 5;     //當前縮放
            mapControl.ShowCenter = false; //不顯示中心十字點
            mapControl.DragButton = MouseButton.Left; //左鍵拖拽地圖
            mapControl.Position = new PointLatLng(32.064, 118.704); //地圖中心位置:南京

            mapControl.OnMapZoomChanged += new MapZoomChanged(mapControl_OnMapZoomChanged);
            mapControl.MouseLeftButtonDown += new MouseButtonEventHandler(mapControl_MouseLeftButtonDown);
        }

        void mapControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Point clickPoint = e.GetPosition(mapControl);
            PointLatLng point = mapControl.FromLocalToLatLng((int)clickPoint.X, (int)clickPoint.Y);
            GMapMarker marker = new GMapMarker(point);
            mapControl.Markers.Add(marker);
        }

        void mapControl_OnMapZoomChanged()
        {
        }
    }
}

效果圖如下:

和Winform代碼差不多,一些響應事件不同,WPF的GMap中沒有GMapOverlay這個“圖層”的概念,所以沒法加多個GMapOverlay,在GMapOverlay上再加GMapMarker(可以理解為圖標標注),GMapMarker只能直接加在mapControl上面。

WPF的GMapMarker可以直接實例化(WinForm中的不行),但是貌似沒有默認提供的效果,而要做出一些效果,需要自己設計實現,官方Demo中已經有了一些實現,WinForm中的GMapMarker可以用GMarkerGoogle去實例化(提供的有可選的效果,也可以自己傳入bitmap作為自定義的圖標)。

您可能感興趣的文章:
  • WPF自定義控件和樣式之自定義按鈕(Button)
  • WPF的數據綁定詳細介紹
  • wpf將表中數據顯示到datagrid示例
  • 仿vs實現WPF好看的進度條
  • WPF彈出自定義窗口的方法
  • WPF實現漸變淡入淡出的登陸窗口效果
  • WPF如何自定義TabControl控件樣式示例詳解
  • C# WPF ListView控件的實例詳解
  • WPF應用啟動慢的問題解決

標簽:新疆 黃南 綿陽 曲靖 延安 大興安嶺 宜春 焦作

巨人網絡通訊聲明:本文標題《在WinForm和WPF中使用GMap.Net地圖插件簡單教程》,本文關鍵詞  在,WinForm,和,WPF,中,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在WinForm和WPF中使用GMap.Net地圖插件簡單教程》相關的同類信息!
  • 本頁收集關于在WinForm和WPF中使用GMap.Net地圖插件簡單教程的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日韩av高清在线观看| 欧美三级欧美一级| 国产三级精品在线| 成人黄色网址在线观看| 亚洲四区在线观看| 91黄色激情网站| 日韩精品国产精品| 欧美v亚洲v综合ⅴ国产v| 国产高清在线观看免费不卡| 中文字幕免费不卡| 欧洲精品在线观看| 日本成人超碰在线观看| 久久久高清一区二区三区| 不卡影院免费观看| 丝袜亚洲精品中文字幕一区| 精品理论电影在线| proumb性欧美在线观看| 亚洲一区二区三区四区的| 9191成人精品久久| 国产91精品在线观看| 亚洲一区二区在线观看视频| 日韩一区二区高清| k8久久久一区二区三区 | 亚洲国产精品99久久久久久久久| aa级大片欧美| 免费美女久久99| 亚洲欧美在线aaa| 欧美一区二区三区男人的天堂| 国产麻豆精品久久一二三| 亚洲精品乱码久久久久久日本蜜臀| 欧美一级日韩不卡播放免费| 成人黄色小视频| 久久精品99国产精品日本| 亚洲黄色性网站| 久久久久国产精品麻豆| 欧美日韩精品一区二区在线播放| 国产激情视频一区二区在线观看 | 不卡视频免费播放| 裸体健美xxxx欧美裸体表演| 亚洲手机成人高清视频| 日韩精品一区二| 91精品办公室少妇高潮对白| 国产麻豆一精品一av一免费| 偷拍一区二区三区四区| 国产精品久久久久桃色tv| 欧美va亚洲va国产综合| 欧美日韩国产另类不卡| 99久久精品国产麻豆演员表| 国产精品一区免费视频| 轻轻草成人在线| 亚洲电影你懂得| 亚洲日本免费电影| 国产精品久线观看视频| 久久精品一区二区三区不卡| 日韩精品一区二区三区在线播放 | 91美女在线观看| 国产精品69久久久久水密桃| 日本系列欧美系列| 亚洲aⅴ怡春院| 亚洲一区二区三区自拍| 亚洲精品成人悠悠色影视| 国产精品系列在线| 欧美—级在线免费片| 国产视频一区在线播放| 久久精品一区二区三区av | 国产亚洲va综合人人澡精品| 欧美成人三级在线| 欧美成人精品1314www| 日韩一区二区三区观看| 欧美精三区欧美精三区| 欧美日韩日本视频| 欧美另类一区二区三区| 在线播放91灌醉迷j高跟美女| 欧美日韩一二区| 欧美一级在线免费| 欧美变态tickling挠脚心| 日韩亚洲欧美在线| 2024国产精品| 欧美国产精品劲爆| 国产精品不卡一区二区三区| 亚洲人成网站色在线观看| 亚洲青青青在线视频| 亚洲精品国产无天堂网2021| 一区2区3区在线看| 婷婷开心久久网| 美国欧美日韩国产在线播放| 国产麻豆视频一区| 99久久精品一区二区| 欧美亚洲高清一区| 日韩欧美激情在线| 久久久久国产精品麻豆ai换脸| 中文字幕欧美三区| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲最新视频在线播放| 日本美女一区二区三区视频| 韩国午夜理伦三级不卡影院| 国产.欧美.日韩| 欧美午夜精品免费| 欧美变态口味重另类| 国产精品天天看| 亚洲国产精品久久久男人的天堂| 视频在线在亚洲| 国产不卡在线一区| 欧美午夜免费电影| 久久久久久麻豆| 亚洲女同ⅹxx女同tv| 免费成人在线播放| www.亚洲精品| 91精品中文字幕一区二区三区| 26uuu欧美日本| 亚洲一区二区三区四区在线 | 99久久精品国产一区| 在线不卡欧美精品一区二区三区| 久久综合资源网| 日韩理论片在线| 久久99精品国产麻豆不卡| 91在线丨porny丨国产| 欧美一区二区国产| 亚洲欧洲国产日本综合| 美洲天堂一区二卡三卡四卡视频| proumb性欧美在线观看| 欧美成人艳星乳罩| 亚洲成人精品一区二区| 成人精品视频一区二区三区 | 欧美一级淫片007| 亚洲天堂精品在线观看| 九色porny丨国产精品| 99精品热视频| 久久综合色婷婷| 五月天亚洲婷婷| 91麻豆国产香蕉久久精品| 日韩三级中文字幕| 亚洲一卡二卡三卡四卡无卡久久| 国产麻豆91精品| 日韩一区二区电影网| 婷婷综合另类小说色区| 91丨九色porny丨蝌蚪| 久久久精品免费免费| 美女视频黄 久久| 91.xcao| 亚洲国产日韩在线一区模特| 国产成人在线观看免费网站| 欧美成人a∨高清免费观看| 午夜精品视频一区| 在线观看亚洲精品| 国产精品久久久久影院老司 | 亚洲一区二区三区影院| voyeur盗摄精品| 欧美国产精品劲爆| 国产成人三级在线观看| 日韩精品一区国产麻豆| 美女一区二区在线观看| 欧美精品久久久久久久多人混战 | 日韩激情视频在线观看| 欧美在线一区二区| 亚洲精品日日夜夜| 成人精品高清在线| 亚洲国产精品成人久久综合一区| 国产真实乱子伦精品视频| 日韩欧美二区三区| 久久精品噜噜噜成人88aⅴ| 91久久线看在观草草青青| 亚洲久草在线视频| 欧美午夜视频网站| 五月天精品一区二区三区| 欧美性极品少妇| 亚洲二区视频在线| 欧美在线色视频| 天天亚洲美女在线视频| 91精品在线一区二区| 美女性感视频久久| 精品成人一区二区| 福利一区在线观看| 日韩毛片一二三区| 欧美熟乱第一页| 免费在线观看不卡| 久久夜色精品国产噜噜av| 国产成人夜色高潮福利影视| 国产精品福利av| 欧美亚洲愉拍一区二区| 日本视频一区二区三区| 精品国产91乱码一区二区三区| 国产91露脸合集magnet| 亚洲女人小视频在线观看| 欧美日韩免费电影| 久久国产精品99久久人人澡| 欧美国产一区在线| 色女孩综合影院| 日本特黄久久久高潮| 国产亚洲一区二区三区在线观看| 成人av在线网站| 亚洲电影欧美电影有声小说| 精品日韩在线一区| 91视频在线看| 日本va欧美va精品| 国产精品久久综合| 欧美一区日韩一区| 成人小视频在线| 图片区小说区区亚洲影院| 久久九九久久九九|