热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

离线谷歌卫星地图加载服务中间件调用示例ForWPF

1.说明水经注离线谷歌卫星地图加载服务中间件可利用离线地图的.dat文件在本地建立服务端,并生成影像、标签、高程等服务地址,可以在WPF中直接调用该服务地址,并将请求到的服务资源显示在前端,当请求的地
1.说明 水经注离线谷歌卫星地图加载服务中间件可利用离线地图的.dat文件在本地建立服务端,并生成影像、标签、高程等服务地址,可以在WPF中直接调用该服务地址,并将请求到的服务资源显示在前端,当请求的地图资源不存在可通过网络直接下载缺失的地图,并储存在.dat文件中。
百度网盘下载:http://pan.baidu.com/s/1jGfHGv8
 
2.实现 2.1 WPF项目建立 新建WPF项目“RiverMapServerSample For WPF”,如下图。
  在引用中添加arcgis的com组件“ESRI.ArcGIS.Client”,如下图。
 
  新建一个离线图层类“OfflineGoogleMapLayer”,部分源码如下。 class OfflineGoogleMapLayer : TiledMapServiceLayer     {         private const double halfCircle = 20037508.342787;         public override void Initialize()         {             TileInfo = new TileInfo();             TileInfo.Width = 256;             TileInfo.Height = 256;             TileInfo.Origin = new MapPoint(-halfCircle, halfCircle);             TileInfo.SpatialReference = new SpatialReference(102113);//102100             TileInfo.Lods = new Lod[19];             double resolution = halfCircle * 2 / 256;             base.MaximumResolution = resolution;             for (int i = 0; i             {                 TileInfo.Lods[i] = new Lod();                 TileInfo.Lods[i].Resolution = resolution;                 resolution /= 2.0;             }             base.MinimumResolution = resolution * 2.0;             base.SpatialReference = new SpatialReference(102113);             base.FullExtent = new Envelope(-halfCircle, -halfCircle, halfCircle, halfCircle);             base.Initialize();         }         public override string GetTileUrl(int level, int row, int col)         {             string baseUrl = "http://127.0.0.1:1002/getDefinedImage?";             int x = col + 1;             int y = row + 1;             int l = level + 1;             string url = baseUrl + "x=" + x + "&y=" + y + "&z=" + l;             return url;         } 其中【baseURL=”http://localhost:1002/getDefinedImage?”】表示请求的是影像、地图、地形、标签、影像+标签、影像+地图、影像+地形或Dem。具体根据RiverMapServer的启动配置参数来确定。 例如:RiverMapServer.exe “1002” “Image_Label” “c:\test\tile” “c:\test\label”表示此应用输出合并底图(可以为影像、地图、地形任意一种)和标签两个地图瓦片。RiverMapServer.exe “1002” “Image” “c:\test\tile”  表示此应用输出地图底图(可以为影像、地图、地形任意一种)    在主界面“MainWindow.xaml.cs”中添加刚刚新建的离线图层“OfflineGoogleMapLayer”,如下图所示。

  2.2启动RiverMapServer 启动RiverMapServer有两种方式都可以正常运行。
 
2.2.1 直接运行RiverMapServer
通过config.ini文件配置参数,如下图。

  PORT=1002  表示端口为1002;GetFileType=Image_Label表示此应用输出合并底图(可以为影像、地图、地形任意一种)和标签两个地图瓦片,后面必须跟两个瓦片工程文件目录;TileDir=..\dat\tile表示影像数据路径;LabelDir=..\dat\label 表示标签数据路径;DemDir=..\dat\dem 表示高程数据路径。 RiverMapServer启动窗口,如下图。


 
2.2.2 通过cmd.exe输入启动参数运行
新建一个bat文件,设置配置参数,如下图。

 
双击.bat启动服 务。运行效果和直接运行RiverMapServer效果一致。


 
3.运行结果 运行RiverMapServerSample For WPF效果,如下图。

  附录: 启动参数说明 1.瓦片文件类型:Image_Lable 表示此应用输出合并底图(可以为影像、地图、地形任意一种)和标签两个地图瓦片,后面必须跟两个瓦片工程文件目录 例子:RiverMapServer.exe “1002” “Image_Label” “c:\test\tile” “c:\test\label”   2.瓦片文件类型:Image 表示此应用输出地图底图(可以为影像、地图、地形任意一种)  后面必须只需一个瓦片工程文件目录 例子:RiverMapServer.exe “1002” “Image” “c:\test\tile”    3.瓦片文件类型:Label表示此应用输出地图标签 后面必须只需一个瓦片工程文件目录 例子:RiverMapServer.exe “1002” “Label” “c:\test\label”    4.(待)瓦片文件类型:dem表示此应用输出地图位置高程 后面必须只需一个地图位置高程工程文件目录 例子:RiverMapServer.exe “1002” “dem” “c:\test\dem” 输入参数大小写不敏感,启动时需检查瓦片文件类型与工程文件是否匹配   请求接口说明 根据启动参数输出相应类型图片(影像、地图、地形、标签、影像+标签、影像+地图、影像+地形、Dem http://localhost:1002/getDefinedImage?x=1&y=1&z=1 输出地图底图(影像、地图、地形任意一种)
http://localhost:1002/getTileImage?x=1&y=1&z=1
输出标签 http://localhost:1002/getLabelImage?x=1&y=1&z=1 输出高程 http://localhost:1002/getDemImage?x=1&y=1&z=1 删除地图地图(影像、地图、地形任意一种) http://localhost:1002/delTileImage?x=1&y=1&z=1   地图服务启动日志输出
1.服务启动时需要检测输入参数的数据是否正确:
@@INPUT:OK 输入参数正确 @@INPUT:PortError 端口错误 @@INPUT:TypeError 瓦片类型错误 @@INPUT:DataFileError:瓦片工程文件 瓦片工程文件错误   2 .服务正常启动与运行输出: @@RUN:WAITING 正常启动后和服务空闲时每分钟输出 @@RUN:Exception:异常消息(不能有回车换上等控制字符)服务启动异常后输出   服务正常启动后建立与瓦片工程文件数据源的连接 @@DSCOK:瓦片工程文件 连接正常 @@DSCFAIL:瓦片工程文件 连接失败 @@PORT:端口   3 .瓦片输出 @@TileOK:X=1&y=1&z=1 底图瓦片下载成功(已下载正常输出瓦片不输出日志) @@LabelOK:X=1&y=1&z=1 标签瓦片下载成功(已下载正常输出瓦片不输出日志) @@TileNoExists:X=1&y=1&z=1 底图瓦片不存在 @@LabelNoExists:X=1&y=1&z=1 标签瓦片不存在 @@TileOverRange:X=1&y=1&z=1 底图瓦片超出工程文件覆盖范围 @@LabelOverRange:X=1&y=1&z=1 标签瓦片超出工程文件覆盖范围
推荐阅读
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
  • 【前端工具】nodejs+npm+vue 安装(windows)
    预备先看看这几个是干嘛的,相互的关系是啥。nodejs是语言,类比到php。npm是个包管理,类比到composer。vue是个框架&# ... [详细]
author-avatar
wjwakx5792
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有