MLS6(中文)English introduction

SparrowHawk's the Maidenhead's Locator System Calculator 6th

版本:beta 0.99
下载:MLS6beta0.99.zip
0:
=========================================================================
Copyright 2006 Yang Hongbo(杨鸿博)

MLS6(SparrowHawk's the Maidenhead's locator System Calculator 6th)is
distributed under the terms of the GNU General Public License.

MLS6(SparrowHawk's the Maidenhead's locator System Calculator 6th)is
free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any
later version.

MLS6(SparrowHawk's the Maidenhead's locator System Calculator 6th) is
distributed in the hope that it will be useful,but WITHOUT NY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with MLS6(SparrowHawk's the Maidenhead's locator System Calculator 6th);
if not, write to the Free Software Foundation, Inc., 51 Franklin St,
Fifth Floor, Boston, MA  02110-1301  USA

中文:
1、介绍:
=========================================================================
    MLS6(SparrowHawk's the Maidenhead's Locator System Calculator 6th)
是一个可以将梅登黑德网格座标(Maidenhead's Locator System Grid Square)
与经纬度相互转换、并能生成GoogleEarth地标(kml)的免费程序,此程序在GNU General
Public License下发布。

    GoogleEarth于2006年6月9日大面积更新,国内的许多城市都有了清晰的照片。
原来我一直在找梅登黑德网格座标的世界地图,但没有找到。所以我想我可以写一
个程序,用它来生成GoogleEarth的地标文件,让GE成为我的地图。
    所以我写了这个程序

2、程序的使用:
=========================================================================
    用户可以在界面上(目前还是在DOS下运行)输入梅登黑德网格座标(Maidenhead's
Locator System Grid Square)或者是经纬度信息。
    其中梅登黑德网格座标是由六或者四位字符组成,第1、2位为AA~RR;第3、4位为
00~99;第5、6位(可选)为AA~XX。
    经纬度信息,可以有度、分、秒或者小数两种输入格式。使用度、分、秒时,空格
表示“度(°)”符号(也可以修改,具体请看3.(4)部分),如北纬108°55'0",应输入:108 55'N(0"可输入也可不输入),
程序支持的方位符号有E/W/S/N(东西南北,不区分大小写);使用小数形式时,直接输
入以度为单位的经纬度,例如,北纬108.15°,就输入108.15N。

    程序计算完成后,会询问是否要建立GoogleEarth文件(以梅登黑德网格座标为文件
名),用户可以在GoogleEarth中打开网格文件。

3、程序的修改
=========================================================================
    (0)版权:
    此程序在GPL下发布,因此,随同程序,您还将获得程序的全部源代码,并且可以按
照需要自行修改并重编译使用甚至发布(发布的程序也必须遵循GPL,具体法律细节请看
程序目录附带的GPL或COPYING文件或访问http://www.gnu.org网站)。
   
    (1)程序的基本信息
    此程序开发使用了Microsoft的Visual C++6.0,但基本上采用了ANSI C的标准编写。
因此应该可以在各种平台上编译(但我没有测试过,在非Windows平台上编译,请将stdafx.h
和stdafx.cpp两文件删除或者将内容清空,因为这些是Visual C++预编译头文件的定义,
在其它编译器上有可能会出问题)
   
    (2)源代码结构:
    MLS6.cpp:主文件,包含main()函数,负责程序界面的显示以及GooglEarth地标的生
成。
    Global.h:全局变量及定义,包括度、分、秒的分隔符的定义,中英文编译标志CHS,
字符串常量LEN等。
    Global.cpp:定义了ShowMsg()函数,目的是用于输出消息,只要修改内部定义,程序
的输出方式可以方便地修改,目前定义为printf(),如要将转为使用Windows PlatformSDK
开发的图形界面的程序时,只要将printf()换为MessageBox()函数(或其它方法)。
    Paser.cpp:只包含一个Paser()函数,负责判断用户输入的是网格座标还是经纬度。然
后执行相关的函数。

    LatLon目录下:
    PaserLatLon.cpp:只包含一个PaserLatLon()函数,负责判断用户输入的经纬度是度、
分、秒格式的还是小数格式的,然后执行相应的函数。
    PaserDec.cpp:包含一个PaserDec()函数,负责解析、转化、计算小数格式的经纬度。
    PaserDMS.cpp:包含一个PaserDMS()函数,负责解析、转化、计算度分秒格式的经纬
度。

    Grid目录下
    PaserGrid.cpp:包含一个PaserGrid()函数,负责解析、转化、计算网格座标。

    (3)中英文版本:
    在Global.h中,如果定义有CHS常量,则程序编译为中文版;否则编译为英文版。
(
    (4)度分秒符号的修改:
    在Global.h中,修改DEGSIGN、MINSIGN、SECSIGN常量。注意:如果想要的符号是C语言
中的特殊符号,请用\作转义字符,具体请看ANSI C标准。

4、我的联系方式:
=========================================================================
    E-mail:sprhawk@sohu.com
    QQ:284815661
    MSN空间:http://spaces.msn.com/sprhawk/