资源简介
这是一个关于地理信息计算的小工具,包括计算经纬度、已知两点的经纬度,计算距离、方位以及已知一点的经纬度、距离和方位,计算另一点的经纬度等功能,
代码片段和文件信息
#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个文件信息
相关资源
- 彩色玻璃冷凝液在小系统碰撞中方位
- 非本征校正对彩色玻璃冷凝物中方位
- 彩色玻璃冷凝物在LHC质子-核碰撞中方
- ZY-850L矿用履带式全方位钻机的研制
- ETC中FM0解码器的设计
- 具有长距离作用力的新型弦解决方案
- 超大功率局部通风机在超长距离掘进
- 西部露天矿区周边植物多样性与土壤
- IBM System Storage SAN04B-R多协议路由器安
- 长距离带式输送机托辊结构优化设计
- 大学数据包含经纬度
- 长线变频系统反射波过电压振荡的解
- 短距离无线通信及组网技术162234
- PCA结合马氏距离
- 中国地图地理坐标经纬度数据
- 全国省城市县城经纬度(腾讯地图版
- 中国各城市经纬度数据
- 中文文本相似度匹配算法
- 全国乡镇经纬度更新到2018年5月
- 测地距离—来自science杂志
- 全方位解读特斯拉、比亚迪、蔚来及
- 反距离加权插值算法
- 论文研究 - 中国电力,火电生产和供
- 论文研究 - 贝尔定理和远距离的瞬时
- 论文研究 - Barkhausen检测距离对冷轧低
- 论文研究 - 使用感应线圈的短距离和
- 远距离胶带输送机安装试车与调偏
- .net 根据地址获取经纬度;根据经纬度
- 全球地区数据库带经纬度,国内细化
- PCB Layout爬电距离、电气间隙的确定
评论
共有 条评论