本文中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编译生成,解决乱码等问题的更多相关文章

  1. SpringMVC解决乱码

    SpringMVC解决乱码 在web.xml中配置如下代码

  2. http get/post解决乱码问题

    <form method="默认为get"-> <s:form mothod="默认为post"-> ================= ...

  3. 上传Text文档并转换为PDF(解决乱码)

    前些日子,Insus.NET有分享一篇<上传Text文档并转换为PDF>http://www.cnblogs.com/insus/p/4313092.html 它是按最简单与默认方式来处理 ...

  4. mysql 使用set names 解决乱码问题的原理

    解决乱码的方法,我们经常使用“set names utf8”,那么为什么加上这句代码就可以解决了呢?下面跟着我一起来深入set names utf8的内部执行原理 先说MySQL的字符集问题.Wind ...

  5. php 解决乱码的通用方法

    一,出现乱码的原因分析 1,保存文件时候,文件有自己的文件编码,就是汉字,或者其他国语言,以什么编码来存储 2,输出的时候,要给内容指定编码,如以网页的形势输入时<meta http-equiv ...

  6. 为sublime安装package control 解决乱码问题 Mac版

    为sublime安装package control   Mac版参考 https://sublime.wbond.net/installation 防止中文乱码其实只需要2个东东  一个GBK enc ...

  7. Python字符串的encode与decode研究心得——解决乱码问题

    转~Python字符串的encode与decode研究心得——解决乱码问题 为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成“/xe4/xb8/xad/xe6/x96/x8 ...

  8. window安装mysql5.7解压版(解决乱码问题)

    ♣安装mysql两种方法 ♣下载mysql5.7解压版 ♣配置步骤 ♣解决服务无法启动 ♣解决乱码 1.安装mysql两种方法 MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的.如果 ...

  9. 编译VisualVM源码解决乱码问题

    编译VisualVM源码解决乱码问题 起因 今天在使用VisualVM对测试服务器进行JVM监控的时候,发现所有统计图的横纵坐标都是显示乱码(小方块),即使我的Ubuntu系统使用的是英文语言环境.奇 ...

随机推荐

  1. loger4j时间一长,就不向数据库里写日志啦,然而重新启动工程后就可以再次向数据库写日志,好奇怪

    loger4j时间一长,就不向数据库里写日志啦,然而重新启动工程后就可以再次向数据库写日志,好奇怪

  2. C++实现反射---RTTR库的使用

    使用过C#或者Java 的童鞋,应该对这些语言提供的反射机制有所了解.所谓反射,在我看来就是在只知道一个类的名字(字符串形式)的情况下,自动创建出具体的类实例,并且能够枚举该类型拥有的属性.方法等信息 ...

  3. Solon,一个轻量级的应用开发框架。发布官网喽!!!

    官网发布: https://solon.noear.org/ 项目简介: Solon,是一个轻量级的应用开发框架.更快.更小.更自由! 支持JDK8+:主框架0.1Mb:组合不同的插件应对不同需求:方 ...

  4. c(++)变长参数之整形(非字符串类型类似)

    0.序言 变长参数,接触的第一个可变长参数函数是 printf   , 然后是 scanf   .他们的原型如下: printf: _Check_return_opt_ _CRT_STDIO_INLI ...

  5. 【LeetCode】Gas Station 解题报告

    [LeetCode]Gas Station 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/gas-station/#/descr ...

  6. 【LeetCode】673. Number of Longest Increasing Subsequence 解题报告(Python)

    [LeetCode]673. Number of Longest Increasing Subsequence 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https:/ ...

  7. 「HAOI 2006」数字序列

    Description 给定一长度为 \(n\) 的数列 \(a\),可将 \(a_i\) 改为任意整数 \(k\),代价为 \(\mid a_i-k\mid\). 问最少改变多少个数能把它变成一个单 ...

  8. EMA

    目录 源 设置 结果 源 Exponential moving average (EMA) 是一个非常有用的trick, 起到加速训练的作用. 近来发现, 该技巧还可以用于提高网络鲁棒性(约1% ~ ...

  9. 向setup.py里添加自定义command

    向setup.py里添加自定义command 参考这里 继承distutils.cmd.Command类: class CCleanCommand(distutils.cmd.Command): &q ...

  10. 台湾旺玖MA8601|USB HUB方案|MA8601测试版

    MA8601是USB 2.0高速4端口集线器控制器的高性能解决方案,完全符合通用串行总线规范2.0.MA8601继承了先进的串行接口技术,当4个DS(下游)端口同时工作时,功耗最低. MA8601采用 ...