资源简介

这是一个关于地理信息计算的小工具,包括计算经纬度、已知两点的经纬度,计算距离、方位以及已知一点的经纬度、距离和方位,计算另一点的经纬度等功能,

资源截图

代码片段和文件信息

#include “stdafx.h“

#include 
#include 

bool StringUtil::StartsWith(std::string& s1 const char * s2)
{
bool result = false;

if (s2)
{
int len1 = s1.length();
int len2 = strlen(s2);

if ((len2 > 0) && (len1 >= len2))
{
const char * ptr1 = s1.c_str();

result = true;

for (int i=0;i if (s2[i] != ptr1[i])
{
result = false;
break;
}
}
}
}

return result;
}

bool StringUtil::Equals(std::string& s1 const char * s2)
{
std::string s = s2;
return Equals(s1s);
}

bool StringUtil::Equals(std::string& s1 std::string& s2)
{
bool result = false;
int len1 = s1.length();
int len2 = s2.length();

if (len1 > 0)
{
if (len1 == len2)
{
const char * ptr1 = s1.c_str();
const char * ptr2 = s2.c_str();

result = true;

for (int i=0;i if (ptr1[i] != ptr2[i])
{
result = false;
break;
}
}
}
}

return result;
}

void StringUtil::StripControlCharacters(std::string& s)
{
std::string result;

int len = s.length();
char c;

for (int i=0;i c = s.c_str()[i];
if (c >= 32)
{
result += c;
}
}

s = result;
}

void StringUtil::Uppercase(std::string& s)
{
std::string result;

int len = s.length();
char c;

for (int i=0;i c = s.c_str()[i];
if ((c > 96) && (c < 123))
{
c -= 32;
}
result += c;
}

s = result;
}

int StringUtil::CompareNoCaseOrSpace(std::string& s1 std::string& s2)
{
int result = 0;

std::string tmp1 = s1;
std::string tmp2 = s2;

StripSpaces(tmp1);
StripSpaces(tmp2);

if (CalculateHashNumber(tmp1) == CalculateHashNumber(tmp2))
{
if (tmp1 == tmp2)
{
result++;
}
}

return result;
}

int StringUtil::CalculateHashNumber(std::string& s)
{
int result = 0;

int length = s.length();
if (length > 0)
{
const char * cptr = s.c_str();
char c;

for (int i=0;i c = cptr[i];

// we want this to be case insensitive
if ((c > 96) && (c < 123))
{
c -= 32;
}
result += (int)c;
}
}

return result;
}

UINT32 StringUtil::DecodeIPAddress(std::string& s)
{
UINT32 result = 0;

std::string stmp = s;

int length = stmp.length();
const char * cptr = stmp.c_str();
int i;
char c;
std::string tmp;
int non_num = 0;
int num = 0;
std::vector numbers;

for (i=0;i c = cptr[i];
if (c == ‘.‘)
{
if (tmp.length() > 0)
{
if (IsIntNumber(tmp))
{
num++;
UINT32 u = atoi(tmp.c_str());
numbers.push_back(u);
}
else
{
non_num++;
}
}
else
{
break;
}
}
else
{
tmp += c;
}
}

int size = numbers.size();
if (size == 4)
{
UINT32 a = numbers[0];
UINT32 b = numbers[1];
UINT32 c = numbers[2];
UINT32 d = numbers[4];

result = (d << 24) | (c

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2004-04-19 00:26  vc6\GeoCalc\
     文件       17974  2004-04-17 03:07  vc6\GeoCalc\geo.cpp
     文件        2139  2004-04-15 01:11  vc6\GeoCalc\geo.h
     文件        1738  2004-04-11 15:50  vc6\GeoCalc\GeoCalc.cpp
     文件        5159  2004-04-11 15:51  vc6\GeoCalc\GeoCalc.dsp
     文件         537  2003-02-01 18:03  vc6\GeoCalc\GeoCalc.dsw
     文件        1310  2003-02-01 18:03  vc6\GeoCalc\GeoCalc.h
     文件       10862  2004-04-11 16:09  vc6\GeoCalc\GeoCalc.rc
     文件       10603  2004-03-30 02:43  vc6\GeoCalc\geodlg.cpp
     文件        2087  2003-03-21 22:23  vc6\GeoCalc\geodlg.h
     文件        2813  2004-04-15 00:47  vc6\GeoCalc\GEOPage.cpp
     文件        1376  2004-04-11 13:03  vc6\GeoCalc\GEOPage.h
     文件        3163  2004-04-15 00:47  vc6\GeoCalc\IntersectPage.cpp
     文件        1460  2004-04-11 13:03  vc6\GeoCalc\IntersectPage.h
     文件        1901  2004-04-15 00:43  vc6\GeoCalc\MeridianPage.cpp
     文件        1300  2004-04-11 13:03  vc6\GeoCalc\MeridianPage.h
     目录           0  2004-04-19 00:23  vc6\GeoCalc\res\
     文件        1078  2003-02-01 18:03  vc6\GeoCalc\res\GeoCalc.ico
     文件         399  2003-02-01 18:03  vc6\GeoCalc\res\GeoCalc.rc2
     文件         766  2003-02-01 18:22  vc6\GeoCalc\res\icon7.ico
     文件        3531  2004-04-11 13:31  vc6\GeoCalc\resource.h
     文件        2707  2004-04-15 00:47  vc6\GeoCalc\SatPage.cpp
     文件        1296  2004-04-11 13:42  vc6\GeoCalc\SatPage.h
     文件         209  2003-02-01 18:03  vc6\GeoCalc\StdAfx.cpp
     文件        1054  2003-02-01 18:03  vc6\GeoCalc\StdAfx.h
     文件        3176  2004-04-11 16:06  vc6\GeoCalc\tabdlg.cpp
     文件        1454  2004-04-11 14:46  vc6\GeoCalc\tabdlg.h
     目录           0  2004-04-19 00:23  vc6\
     目录           0  2004-04-19 00:24  src\util\
     文件        4850  2003-08-18 17:03  src\util\arraycontainer.h
     文件        6623  2004-04-11 14:29  src\util\StringUtil.cpp
............此处省略3个文件信息

评论

共有 条评论