初识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 编程基础 类加载器
什么是类加载器 类加载器负责将class文件(可能在磁盘上,也可能在网络上)加载到内存中,并为之生成对应的java.lang.Class对象.Java开发中无须过分关心类加载机制,但所有的编程人员都应 ...
- mysql联合查询更新数据库例子
mysql联合查询更新数据库例子,用户表,部门表,把用户表中的部门属性更新为部门表的主键UPDATE user_table AS utINNER JOIN belongdept AS bd ON bd ...
- java web 404错误页面配置
java web 404错误页面配置:注意红框的地方,在工程的web.xml文件里的最开头加入如下的内容便可,但是也有问题,针对以.action后缀名和.jsp后缀名不起作用, 因为后面配置了一些拦截 ...
- summernote富文本图片上传,增加视频上传功能、批量上传方法
Summernote 是一个简单灵活的所见即所得的 HTML 在线编辑器,基于 jQuery 和 Bootstrap 构建,支持快捷键操作,提供大量可定制的选项. 但是却只有图片上传功能,没有视频上传 ...
- 【LeetCode】393. UTF-8 Validation 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/utf-8-va ...
- 『学了就忘』vim编辑器基础 — 95、命令模式中的相关命令
目录 1.移动光标操作 2.删除或剪切操作 3.复制操作 4.撤销操作 5.替换操作 6.补充一个知识点 命令模式中的命令主要取代的是Linux系统中鼠标的操作. vim编辑器的快捷键一般都集中在命令 ...
- Codeforces 567B:Berland National Library(模拟)
time limit per test : 1 second memory limit per test : 256 megabytes input : standard input output : ...
- Elasticsearch核心技术(五):搜索API和搜索运行机制
本文将从数据存储和搜索的角度简单分析Elasticsearch的搜索运行机制,主要涉及搜索API.搜索机制.存在问题和解决方案. 4.1 Search API Search API允许用户执行一个搜索 ...
- Chapter 1 A Definition of Causal Effect
目录 1.1 Individual casual effects 1.2 Average casual effects 1.5 Causation versus association Hern\(\ ...
- 求区间内第一个大于等于x的数的下标
int tree[4*N]; void build(int o,int l,int r) { if(l==r) {cin>>tree[o];return;} build(ls,l,mid) ...