gePlugin封装成winform控件,一行代码即可加载。

将插件直接封装为控件,大大简化了GEPlugin的使用。多数常用功能也已经封装完毕,其他功能全部开放接口,直接调用即可。

1、

GepluginControl控件传送门:

链接:https://pan.baidu.com/s/1WC5FodF2GTk7Jj5EUOSWqQ 提取码:fw7l

下载的是源码,找到debug目录,将debug目录下的所有文件全部拷贝到你创建的项目的debug目录下,或者release目录。

文件目录:

将GEControl.dll添加到引用中,并且添加到工具箱中。不知道如何添加的话可自行搜索,网上教程很多,在这不做过多赘述。


2、添加完成后,建议将属性面板中LoadMap属性设置为true,不设置也可以。

  

this.geWebControl1.InitGoogleMap():加载谷歌地图并且显示。只需要这一行代码即可完成谷歌地图显示

this.geWebControl1.StartWebserver();启动webserver服务器。这个是为了加载kml文件和转换高德地图使用的。建议写上。

3、运行程序:

如图一些常用的基本功能已经封装完毕。

那么怎么加载自己的kml文件呢?

使用LoadKml方法,有两个重载方法,其中一个方法集成好了类型,也就是第一个参数,其实第一个参数就是图层名称,在这里已经把图层命名好了,直接可以使用,图层名称必须是固定的,因为要跟后台js交互,所以如果你知道js后台都有方法,那么你就可以用到第二个自定有的方法了。这个开放给你了所有权限,你可以任意调用后台js中存在的方法,方法种类繁多,不一一赘述。想要了解都有哪些方法,可看另一篇关于geplugin的博文。

第二个参数。启动webserver服务器的时候默认服务器的根目录为debug/Resource。因为这个开放自定义配置的话可能会因为目录书写不对,导致自己无法加载kml,所以为了避免因为此坑的产生。所以你的kml文件直接放在debug/Resource文件夹下即可。当然你也可以修改源码,自己定义自己的root目录。path为相对路径,不是绝对路径,请注意。说的太多不如给个例子 :path = "http://127.0.0.1:9630/3DMap/ditu.kml",细心的你会发现,Resource目录下有3DMap文件,也有ditu.kml文件。所以一次类推,自己的kml文件也可以自定义放置。

        private void Method()
        {
            this.geWebControl1.LoadKML(GEControl.KMLType.importBackwardTrajKmlFilebyUrl, "path");
        }

总结以上,一共只写了三行代码,就完成了地图的显示,地图常用功能的使用,kml文件的加载。很方便。

注:只要将下载下来的debug目录下的文件直接放在自己所在项目的debug目录下。并且添加好引用。几万行的代码量浓缩到了三行,即可完成相同的功能。

转载请注明出处。

原文地址:https://www.cnblogs.com/engyue/p/11181694.html

时间: 2024-08-30 07:09:44

gePlugin封装成winform控件,一行代码即可加载。的相关文章

背水一战 Windows 10 (64) - 控件(WebView): 加载指定 HttpMethod 的请求, 自定义请求的 http header, app 与 js 的交互

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(WebView) 加载指定 HttpMethod 的请求 自定义请求的 http header app 与 js 的交互 示例1.演示 WebView 如何加载指定 HttpMethod 的请求以及如何自定义请求的 http headerWebApi/Controllers/WebViewPostController.cs /* * 用于 WebView 演示“如何加载指定 HttpMethod 的请求,以及如何自

控件WebView网页的加载

Android:控件WebView网页的加载 WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient setWebClient:主要处理解析,渲染网页等浏览器做的事情 setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 WebViewClient就是帮助WebView处理各种通知.请求事件的. 1.在Andr

DevExpress 使用 XtraTabbedMdiManager 控件以 Tab样式加载 Mdi窗体并合并 RibbonControl 解决方案

最近刚接触到 DevExpress 13.1 这个皮肤组件, 觉得相当好用 于是开始准备搭建 个小应用的主体框架. 找了好久的就是没找到对应的文章来讲解这一块.. 翻了他们主网站上人家问的,以及API 才摸索... 不懂英文好吃力呀~~~ 首先选到的就是,依旧用 Mdi子窗体模式加载子模块 第一步: 创建一个主 RibbonForm 为: ParentForm 1.1 设置 RibbonControl 属性 MdiMergeStyle 为: Always 第二步: 在左边拖入一个NavBarCo

easyui中 combogrid控件的loadData方法加载本地数据

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title

通过WinForm控件创建的WPF控件无法输入的问题

今天把写的一个WPF程序发布到别的机器上执行,发现一个比较奇怪的问题:在那个机器上用英文输入法无法输入数字,非要切换到中文输入法才行:但在我的机器上却是好好的. 最开始以为是输入法的问题,弄了好一阵子后,终于找到了原因:虽然这个程序是个WPF程序,但为了复用之前的部分代码,使用着一个WinForm的菜单控件,后续的子窗口都是通过这个WinForm菜单创建的.而用WinForm控件创建的WPF控件可能出现无法正确响应键盘事件的情况. 找到了原因后,一个常规的解决方法是:将WinForm控件换成WP

C#中WinForm控件的跨线程更新Invoke

目的: 用WinForm(C#)搭建一个用户界面,一个进度条和一个按钮,按钮启动进度条,进度完成时停止更新 示例: 实现: 在按钮事件中设置循环,更新进度条         private void btnProgress_Click(object sender, EventArgs e)         {             for (int ii = 0; ii < 100; ii++)             {                 progressBar1.Value 

Wpf使用Winform控件后Wpf元素被Winform控件遮盖问题的解决

有人会说不建议Wpf中使用Winform控件,有人会说建议使用Winform控件在Wpf下的替代方案,然而在实际工作中由于项目的特殊需求,考虑到时间.成本等因素,往往难免会碰到在WPF中使用Winfrom控件的问题,我们知道Wpf可以通过使用WindowsFormsHost容器调用Winform控件,但是在一些场合需要将Wpf元素显示在Winform控件的上层,此时就会出现Wpf元素被Winform控件遮盖的问题. 一.场景再现 接到公司命令,在时间紧迫的情况下,需要将原来的Winform程序(

通过C# WinForm控件创建的WPF WIndow窗口控件无法输入的问题

原文:通过WinForm控件创建的WPF 控件无法输入的问题 今天把写的一个WPF程序发布到别的机器上执行,发现一个比较奇怪的问题:在那个机器上用英文输入法无法输入数字,非要切换到中文输入法才行:但在我的机器上却是好好的. 最开始以为是输入法的问题,弄了好一阵子后,终于找到了原因:虽然这个程序是个WPF程序,但为了复用之前的部分代码,使用着一个WinForm的菜单控件,后续的子窗口都是通过这个WinForm菜单创建的.而用WinForm控件创建的WPF控件可能出现无法正确响应键盘事件的情况. 找

.Net WinForm 控件键盘消息处理剖析

在WinForm控件上我们可以看到很多关于键盘消息处理的方法,比如OnKeyDown, OnKeyPress, ProcessCmdKey, ProcessDialogKey,IsInputKey等等,那么这些方法是如何被组织的,每一个方法的具体含义又是什么哪?Win32的键盘消息又是如何到达控件上的这些方法的,本文将着重阐述这些问题,对.Net WinForm控件的键盘消息处理过程进行剖析.  1.      WinForm消息循环 大家都知道WinForm也是依赖于底层的消息机制的,通常我们