首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
post
actionscrip
frameworks
jsp
dockerfile
instance
case
uml
node.js
bytecode
scala
flutter
cookie
hashset
lua
less
foreach
rsa
vba
hook
default
typescript
copy
timestamp
triggers
range
future
shell
sum
byte
filter
expression
list
php7
int
grid
settings
express
buffer
bit
solr
jar
regex
utf-8
merge
runtime
httpclient
ip
char
cSharp
require
controller
dagger
object
process
keyword
heap
bitmap
javascript
random
plugins
bash
split
nodejs
export
window
ascii
spring
web3
install
dll
perl
netty
php
text
eval
datetime
hashtable
uri
当前位置:
开发笔记
>
编程语言
> 正文
离线谷歌卫星地图加载服务中间件调用示例ForWPF
作者:wjwakx5792 | 来源:互联网 | 2023-09-13 17:10
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 标签瓦片超出工程文件覆盖范围
地图
文件
百度
http
v8
server
client
go
const
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
ci
Gitlab接入公司内部单点登录的安装和配置教程
本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ...
[详细]
蜡笔小新 2023-12-10 14:38:53
sum
Spark实现高斯朴素贝叶斯模型的低配版
本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ...
[详细]
蜡笔小新 2023-12-10 21:42:37
sum
Skywalking系列博客1安装单机版 Skywalking的快速安装方法
本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ...
[详细]
蜡笔小新 2023-12-14 19:05:47
jsp
知识图谱——机器大脑中的知识库
本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ...
[详细]
蜡笔小新 2023-12-14 10:06:19
byte
CF:3D City Model(小思维)问题解析和代码实现
本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ...
[详细]
蜡笔小新 2023-12-13 14:17:11
default
HDFS2.x新特性
一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ...
[详细]
蜡笔小新 2023-12-13 13:52:40
default
Linux下Kafka单机安装配置方法(实操成功)
本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ...
[详细]
蜡笔小新 2023-12-12 18:14:32
default
在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ...
[详细]
蜡笔小新 2023-12-12 17:52:50
default
通过Go SDK(Amazon S3)从Bucket生成Torrent - Generate Torrent from Bucket via Go SDK (Amazon S3)
Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ...
[详细]
蜡笔小新 2023-12-12 14:13:01
shell
【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ...
[详细]
蜡笔小新 2023-12-12 11:19:14
shell
绕过WAF的XSS检测机制及构建XSS payload的方法
本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ...
[详细]
蜡笔小新 2023-12-11 19:42:30
shell
嵌入式处理器的架构与内核发展历程
本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ...
[详细]
蜡笔小新 2023-12-11 15:38:57
shell
Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ...
[详细]
蜡笔小新 2023-12-10 16:27:21
default
springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ...
[详细]
蜡笔小新 2023-12-09 19:23:08
default
【前端工具】nodejs+npm+vue 安装(windows)
预备先看看这几个是干嘛的,相互的关系是啥。nodejs是语言,类比到php。npm是个包管理,类比到composer。vue是个框架 ...
[详细]
蜡笔小新 2023-10-17 20:02:12
wjwakx5792
这个家伙很懒,什么也没留下!
Tags | 热门标签
post
actionscrip
frameworks
jsp
dockerfile
instance
case
uml
node.js
bytecode
scala
flutter
cookie
hashset
lua
less
foreach
rsa
vba
hook
default
typescript
copy
timestamp
triggers
range
future
shell
sum
byte
RankList | 热门文章
1
Chrome F12/ Ctrl +Shift+P/>Capture full size screenshot
2
SqlCommandBuilder 可批量新增与修改数据
3
*AMP里的PHP和Mac OS自带的PHP有什么关系吗?
4
世界顶尖的 Python 数据科学课程,足不出户在家学!
5
java线性数组集合_Java集合类快速了解
6
牛客寒假算法集训营(4)
7
资深程序员总结出完美Python爬虫基础,爬虫入门必备
8
微信计步器怎么不计步_微信春节新功能:如何定制企业专属的微信红包封面?...
9
SpringBoot定时任务(SpringSchedule)实现方法
10
检索COML类工厂中 CLSID为 {0002450000000000C000000000000046}的组件时失败,原因是出现以下错误: 80070005 《终结篇》...
11
如何重新排序表格中的嵌套字段?
12
神经网络编程是什么,神经网络程序代码
13
列标头固定的联系人列表
14
输入阻抗的仿真方法(TINA软件)
15
非阻塞_同步,异步,阻塞,非阻塞,bio,nio,aio
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有