初识WorldWind——WorldWind编译生成,解决乱码等问题
本文中World Wind的GitHub源码下载地址:https://github.com/hujiulin/WorldWind
美国国家航空航天局(National Aeronautics and Space Administration, NASA)主导的World Wind是全球开发人员共同参与研发的一个开源地理信息系统项目。由NASA Research开发,NASA Learning Technologies来发展,将地球的卫星、电子、地形地图以及其他地理数据通过一个三维的数字化的地球进行展示,旨在面向各行业的数据集成,支持WMS、WFS、WTMS等服务,是一款非常优秀的三维客户端框架绘制引擎。它使用了XML对数据进行描述和设置,具有良好的通用性和扩展性。World Wind目前有基于.NET和Java开发的两种版本。World Wind除了三维地球的基础功能之外,还具有很强的可扩展性,具有多种功能性插件,支持谷歌、微软等发布的地图(卫星、电子、地形)数据。
本文主要解决了World Wind编译、运行、中文乱码等问题。
[1].源码的下载,环境的配置,源码的编译[使用国际网络,以防网络不能访问]
源码的下载:
WorldWind分为.Net和java两种版本,Nasa的官方网站是:http://worldwind.arc.nasa.gov/java/
提供java版本的源码下载。
.Net版本的源码下载:
http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind/
这里提供的是svn,建议用svn进行download
备注:上述SVN是通过http://www.worldwindcentral.com/wiki/Source_code 维基百科找到的。
环境的配置:
1. 需要提前装好DirectX9
源码的编译:
1.乱码:会发现很多字符串相关的语法错误。文件编码引起
在VS的解决方案管理器里右键文件
选“打开方式”,
选“带编码功能的CSharp编辑器”
选“西欧(windows)-代码页 1252”
打开文件,无乱码
文件菜单文件的保存编码改成UTF8,再保存源码文件
备注:受影响的文件有6个左右
2. LoaderLock问题:
菜单(调试-》异常)——》异常窗口 ——》ManagerDebuggingAssistants ——》去掉LoaderLock选项
3. 注册表权限问题:
打开HtmlEditor项目的属性,取消“生成(Build )”选项卡的为COM互操作注册(’Register for COM interop’)前的勾选
4.开始运行程序,发现一切正常,但是从初始化界面到程序本身需要等待较长的时间,这是因为中国连不上worldwind的服务器造成的原因,worldwind自己也提供离线模式,亦可以修改xml中wms服务器的url。此处暂时采用的办法是注释掉以下两行代码:
Worldwind->PluginSDK->ConfigurationLoader.cs中:
262行:

321行:

5. 运行程序,加载Initializing的画面错位
通过调试发现在worldwind.cs中的public MainApplication()中[563行],

使用splash窗体。
Splash窗体:
Splash构造函数

可以看到picturebox的代码注释,而且窗体上并无picturebox的控件。
使用的是
属性。

将图片调整成如图所示的样子,启动程序正常。
决定将源码备份到百度网盘和自己的svn服务器上。[百度的服务器上没上传成功]
刚才迁移了worldwind的源码,出现一个问题:
重新生成,清理项目都没有用。

解决方法:
删除该文件:

删除之后,需重新配置:

问题解决。
备注:第一次运行程序时,稍微需要等下。
如果缺少引用:AVIFile.dll FlickrNel.dll等引用,请将Release模式切换为Debug,即可完全编译运行通过。[当然具体原因是需要将对应dll拷贝到Release目录下。]
在解决乱码问题的时候,部分人遇到一个情况:主界面显示度数的地方会形成“掳”这样的乱码,这是因为乱码问题并没得到完全解决,请在“高级选项保存”时选择:带签名的UTF-8保存即可解决该问题。
乱码的文件有:
| Project | File |
|---|---|
| WorldWind | Compass3D.cs |
| WorldWind | GPSTrackerPlugin.WorldWind.cs |
| WorldWindow | WorldWindow.cs |
| PluginSDK | ConfigurationLoader.cs |
| PluginSDK | Angle.cs |
乱码问题全部解决:

今天将svn上的代码,迁移到x64的机器上编译,程序不能运行,调试模式下看到错误:
“未处理的“System.BadImageFormatException”类型的异常”
解决方式:
Any CPU或者x64模式-》改成x86,然后将output path改成与“..\bin\Debug\”
重新生成解决方案,编译运行即可成功:

参考链接:http://cesiumcn.org/topic/206.html | 国内快速访问:http://cesium.coinidea.com/topic/206.html
初识WorldWind——WorldWind编译生成,解决乱码等问题的更多相关文章
- SpringMVC解决乱码
SpringMVC解决乱码 在web.xml中配置如下代码
- http get/post解决乱码问题
<form method="默认为get"-> <s:form mothod="默认为post"-> ================= ...
- 上传Text文档并转换为PDF(解决乱码)
前些日子,Insus.NET有分享一篇<上传Text文档并转换为PDF>http://www.cnblogs.com/insus/p/4313092.html 它是按最简单与默认方式来处理 ...
- mysql 使用set names 解决乱码问题的原理
解决乱码的方法,我们经常使用“set names utf8”,那么为什么加上这句代码就可以解决了呢?下面跟着我一起来深入set names utf8的内部执行原理 先说MySQL的字符集问题.Wind ...
- php 解决乱码的通用方法
一,出现乱码的原因分析 1,保存文件时候,文件有自己的文件编码,就是汉字,或者其他国语言,以什么编码来存储 2,输出的时候,要给内容指定编码,如以网页的形势输入时<meta http-equiv ...
- 为sublime安装package control 解决乱码问题 Mac版
为sublime安装package control Mac版参考 https://sublime.wbond.net/installation 防止中文乱码其实只需要2个东东 一个GBK enc ...
- Python字符串的encode与decode研究心得——解决乱码问题
转~Python字符串的encode与decode研究心得——解决乱码问题 为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成“/xe4/xb8/xad/xe6/x96/x8 ...
- window安装mysql5.7解压版(解决乱码问题)
♣安装mysql两种方法 ♣下载mysql5.7解压版 ♣配置步骤 ♣解决服务无法启动 ♣解决乱码 1.安装mysql两种方法 MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的.如果 ...
- 编译VisualVM源码解决乱码问题
编译VisualVM源码解决乱码问题 起因 今天在使用VisualVM对测试服务器进行JVM监控的时候,发现所有统计图的横纵坐标都是显示乱码(小方块),即使我的Ubuntu系统使用的是英文语言环境.奇 ...
随机推荐
- java 编程基础:注解的功能和作用,自定义注解
1,什么是注解: 从JDK5开始,Java增加了对元数据 (MetaData)的支持,也就是Annotation注解,这种注解与注释不一样,注解其实是代码里的特殊标记,这些标记可以在编译.类加载 运行 ...
- Linux(debian7)操作基础(四)之CPU频率调整 Linux系统CPU频率调整工具使用
在Linux中,内核的开发者定义了一套框架模型来完成CPU频率动态调整这一目的,它就是CPU Freq系统.如下为CPU的几种模式(governor参数): ondemand:系统默认的超频模式,按需 ...
- 账号不允许远程访问服务器上的mysql数据库的解决办法host is not allowed to connect to this mysql
改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "use ...
- Linux(centos7)安装redis并设置redis开机自启动
1.下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz 2.解压安装包 tar -zxvf redis-4.0.6 ...
- 如何在 Go 中将 []byte 转换为 io.Reader?
原文链接: 如何在 Go 中将 []byte 转换为 io.Reader? 在 stackoverflow 上看到一个问题,题主进行了一个网络请求,接口返回的是 []byte.如果想要将其转换成 io ...
- 涛思数据 TDengine集群搭建
一.准备 1.设置主机名 hostnamectl set-hostname a.com hostnamectl set-hostname b.com hostnamectl set-hostname ...
- MADE: Masked Autoencoder for Distribution Estimation
目录 概 主要内容 代码 Germain M., Gregor K., Murray I. and Larochelle H. MADE: Masked Autoencoder for Distrib ...
- Spring Boot 2 中如何使用 Log4j2 记录日志
上一篇我们介绍了Spring Boot 2.x中默认日志框架Logback的使用.今天继续说说日志,接下来我们要讲是前段时间爆出核弹漏洞的Log4j2.虽然出了漏洞,让很多小伙伴痛苦了1-2周(加班) ...
- CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案
CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案台湾安格AG9311是一款TYPEC转HDMI带PD3.0的音视频转换芯片,它主要用在USB TYPEC拓展坞或者USB ...
- 编写Java程序,在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小
查看本章节 查看作业目录 需求说明: 在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小 实现思路: 创建ImageFileFilter类实现FilenameFilter接口,且重写 ...