地球上一个点(经纬度),求其周围360度,距离1米的采样点的经纬度坐标(每10度采一个点,共36个点)
2017-11-27 10:54
288 查看
struct pointInEarth { double lon;//经度 double lat;//纬度 double height;//高程 }; void surroundPoints(double longtitude, double latitude) { pointInEarth points[36];//结果在这里 double dis = 0.001;//两点之间的距离设为1米。单位是千米,即0.001千米=1米 double lonStep = dis / (111 * cos(latitude));//1米对应的经度步长,单位是度 double latStep = dis / 111;//1米对应的纬度步长,单位是度 for (int i = 0; i < 36; i++)//36个点 { double angle = i * 10;//10度间隔 double lon = 0.0, lat = 0.0; if (angle >= 0 && angle < 90) { lon = longtitude + lonStep *sin(angle*ONEANGLE); lat = latitude + latStep *cos(angle*ONEANGLE); } else if (angle >= 90 && angle < 180) { lon = longtitude - lonStep *sin(angle*ONEANGLE); lat = latitude + latStep *cos(angle*ONEANGLE); } else if (angle >= 180 && angle < 270) { lon = longtitude - lonStep *sin(angle*ONEANGLE); lat = latitude - latStep *cos(angle*ONEANGLE); } else { lon = longtitude + lonStep *sin(angle*ONEANGLE); lat = latitude - latStep *cos(angle*ONEANGLE); } points[i].lon=lon; points[i].lat=lat; osg::ref_ptr<osgEarth::MapNode> m_mapNode = _map->getCurrentMapView()->mapNode(); m_mapNode->getTerrain()->getHeight(m_mapNode->getMapSRS(), lon, lat, &points[i].height); } }
抛砖引玉,欢迎找茬! 若有错误,请不吝留下意见~~
相关文章推荐
- 怎么根据坐标原点(经纬度)与距离值获取一个方形区域
- 一张纸折51次,有多高?一个冰箱?一层楼?或者一栋摩天大厦?NO,你错了.这个厚度超过了地球和太阳之间的距离。
- 根据地球上任意两点的经纬度计算两点间的距离
- 通过经纬度坐标计算距离
- 通过经纬度坐标计算距离的方法(经纬度距离计算)ZZ
- 利用JavaScript实现的根据经纬度计算地球上两点之间的距离
- java根据GPS经纬度坐标计算两点的距离算法
- 根据两点间经纬度坐标(double值)计算两点间距离,LBS操作相关工具类
- 通过经纬度计算地球两点间的距离
- 求通过经纬度计算地球表面任意两点间距离的公式
- 已知经纬度坐标求亮点距离
- java根据经纬度坐标计算两点的距离算法
- 微信lbs---返回两个经纬度坐标点的距离
- mysql实现地球地理位置经纬度坐标排序
- 百度地图获取二个经纬度坐标间的距离
- 计算两个经纬度坐标的直线距离
- 根据经纬度计算地球上两点之间的距离的Sql Server函数
- Java 根据两个经纬度坐标计算距离
- 经纬度坐标计算距离