如何转到高德在平面直角坐标系中

高德地图iOS SDK 3D地图&搜索服务参考手册 V2.4.0
地图视图类(用于地图窗口显示和对地图进行相关的操作)。
#import &&
(void) -
 根据给定的参数设置地图旋转角度。
(void) -
 根据给定的参数设置地图相机角度。
(double) -
 在当前缩放级别下,基于地图中心点,1 screen point 对应的距离(单位为米)。
(double) -
 在指定的缩放级别下,基于地图中心点,1 screen point 对应的距离(单位为米)。
(void) -
 根据给定的参数设置当前地图的显示范围。
(void) -
 根据给定的参数设置当前地图的中心点。
 根据当前地图视图 frame 的大小调整 region 范围。
(void) -
 根据给定的参数设置可见区域。
(void) -
 根据给定的参数设置缩放级别。
(void) -
 根据指定的枢纽点来缩放地图。
 调整投影矩形比例。
(void) -
 根据当前地图视图frame的大小调整投影范围。
 根据嵌入数据来调整投影矩形比例。
(CGPoint) -
 将经纬度坐标转换为指定 view 坐标系的坐标。
(CLLocationCoordinate2D) -
 将指定 view 坐标系的坐标转换为经纬度坐标。
(CGRect) -
 将经纬度 region 转换为指定 view 坐标系的 rect。
 将指定 view 坐标系的rect 转换为经纬度 region。
(void) -
 根据给定的参数设置定位用户位置的模式。
(void) -
 向地图窗口添加标注。
(void) -
 向地图窗口添加一组标注。
(void) -
 移除标注。
(void) -
 移除一组标注。
(NSSet *) -
 获取指定投影矩形范围内的标注。
( *) -
 返回与指定的标注对象关联的标注 view。
( *) -
 从复用内存池中获取制定复用标识的标注 view。
(void) -
 选中标注对象对应的 view。
(void) -
 取消选中标注对象对应的 view。
(void) -
 在地图中显示数组中所有的标注对象。
(void) -
 将离线地图解压到 Documents/3dvmap/ 目录下后,调用此函数使离线数据生效,对应的回调分别是
(void) -
 向地图窗口添加 Overlay。
(void) -
 向地图窗口添加一组 Overlay。
(void) -
 移除 Overlay。
(void) -
 移除一组 Overlay。
(void) -
 在指定的索引处添加一个 Overlay。
(void) -
 在交换指定索引处的 Overlay。
(void) -
 在指定的 Overlay 之上插入一个 Overlay。
(void) -
 在指定的 Overlay 之下插入一个 Overlay。
( *) -
 查找指定 Overlay 对应的 view,如果该 view 尚未创建,返回 nil。
(UIImage *) -
 对指定区域内的内容进行截图(默认会包含该区域内的标注 view)。
 地图视图对象的委托。
 地图类型。包括三种地图类型: MAMapTypeStandard 、 MAMapTypeSatellite 和 MAMapTypeStandardNight。
CGPoint 
 logo 的位置,必须在地图视图范围(mapView.bounds)之内,否则会被忽略。
CGSize 
 logo 的宽高。
BOOL 
 是否显示交通。默认值为 NO,表示不显示实时交通。
BOOL 
 是否隐藏楼块,默认为NO。
BOOL 
 是否支持缩放。默认值为 YES,表示可缩放。
BOOL 
 是否支持平移。默认为 YES,表示可以平移地图。
BOOL 
 是否支持旋转。默认值为 YES,表示可旋转。
BOOL 
 是否支持单击地图获取 POI 信息。默认值为 NO。
CGFloat 
 地图旋转角度(逆时针为正向)。
CGFloat 
 地图相机角度,范围为[0.f, 45.f]。
BOOL 
 是否支持地图相机旋转。默认为 YES。
BOOL 
 是否显示指南针。
CGPoint 
 指南针在原点的位置。
CGSize 
 指南针的宽高。
BOOL 
 比例尺是否显示。
CGPoint 
 比例尺在原点的位置。
CGSize 
 比例尺的最大宽高。
 当前地图的经纬度范围,设定的该范围可能会被调整为适合地图窗口显示的范围。
CLLocationCoordinate2D 
 当前地图的中心点,改变该值时,地图的比例尺级别不会发生变化。
 可见区域。
CGFloat 
 缩放的级别。
CGFloat 
 最小的缩放级别。
CGFloat 
 最大的缩放级别。
BOOL 
 是否显示用户位置。
 当前的位置数据。
BOOL 
 是否显示用户自定义定位精度圈, 默认为 NO。
 用户位置精度圈对应的 Overlay。
 定位用户位置的模式。
BOOL 
 当前位置在地图中是否可见。
NSArray * 
 标注数组,数组中存放
NSArray * 
 处于选中状态的标注对象数组,数组中对象的数量为 0 或 1。
CGRect 
 annotation 可见区域。
CLLocationDistance 
 设定定位的最小更新距离。默认是 kCLDistanceFilterNone,有任何移动会有提示。
CLLocationAccuracy 
 设定定位精度。默认为 kCLLocationAccuracyBest。
CLLocationDegrees 
 设定最小更新角度。默认为1度,设定为 kCLHeadingFilterNone 会提示任何角度改变。
BOOL 
 是否开启 OpenGLES 绘制操作。
NSArray * 
 Overlay 数组。
地图视图类(用于地图窗口显示和对地图进行相关的操作)。
注解以下代码示范如何创建
*mapview = [[ alloc] initWithFrame:self.view.bounds];
mapview. = ;
mapview. = NO;
- (void) addAnnotation:
annotation
向地图窗口添加标注。
注解需要实现
函数来生成标注对应的 view。
annotation要添加的标注。
- (void) addAnnotations:
(NSArray *) 
annotations
向地图窗口添加一组标注。
注解需要实现
函数来生成标注对应的 view。
annotations要添加的标注数组,数组中存放
- (void) addOverlay:
向地图窗口添加 Overlay。
注解需要实现
函数来生成标注对应的 view。
overlay要添加的 Overlay。
Provided by category .
- (void) addOverlays:
(NSArray *) 
向地图窗口添加一组 Overlay。
注解需要实现
函数来生成标注对应的view。
overlays要添加的 Overlay 数组。
Provided by category .
- (NSSet *) annotationsInMapRect:
获取指定投影矩形范围内的标注。
mapRect投影矩形范围。
返回标注集合。
- (CGPoint) convertCoordinate:
(CLLocationCoordinate2D) 
coordinate
toPointToView:
(UIView *) 
view 
将经纬度坐标转换为指定 view 坐标系的坐标。
coordinate经纬度坐标。
view指定的 view。
返回基于指定 view 坐标系的坐标。
- (CLLocationCoordinate2D) convertPoint:
(CGPoint) 
toCoordinateFromView:
(UIView *) 
view 
将指定 view 坐标系的坐标转换为经纬度坐标。
point指定 view 坐标系的坐标。
view指定的 view。
返回经纬度坐标。
- () convertRect:
(CGRect) 
toRegionFromView:
(UIView *) 
view 
将指定 view 坐标系的rect 转换为经纬度 region。
rect指定view 坐标系的rect。
view指定的view。
返回经纬度region。
- (CGRect) convertRegion:
toRectToView:
(UIView *) 
view 
将经纬度 region 转换为指定 view 坐标系的 rect。
region经纬度 region。
view指定的 view。
返回指定 view 坐标系的 rect。
- ( *) dequeueReusableAnnotationViewWithIdentifier:
(NSString *) 
identifier
从复用内存池中获取制定复用标识的标注 view。
identifier复用标识。
返回对应的标注 view。
- (void) deselectAnnotation:
annotation
(BOOL) 
animated 
取消选中标注对象对应的 view。
annotation标注对象。
animated是否有动画效果。
- (void) exchangeOverlayAtIndex:
(NSUInteger) 
withOverlayAtIndex:
(NSUInteger) 
index2 
在交换指定索引处的 Overlay。
index1索引1。
index2索引2。
Provided by category .
- (void) insertOverlay:
aboveOverlay:
sibling 
在指定的 Overlay 之上插入一个 Overlay。
overlay带添加的 Overlay。
sibling用于指定相对位置的 Overlay。
Provided by category .
- (void) insertOverlay:
(NSUInteger) 
index 
在指定的索引处添加一个 Overlay。
overlay要添加的 Overlay。
index指定的索引。
Provided by category .
- (void) insertOverlay:
belowOverlay:
sibling 
在指定的 Overlay 之下插入一个 Overlay。
overlay带添加的 Overlay。
sibling用于指定相对位置的 Overlay。
Provided by category .
- () mapRectThatFits:
调整投影矩形比例。
mapRect要调整的投影矩形。
返回调整后的投影矩形。
edgePadding:
(UIEdgeInsets) 
insets 
根据嵌入数据来调整投影矩形比例。
mapRect要调整的投影矩形。
insets嵌入数据。
返回调整后的投影矩形。
- (double) metersPerPointForCurrentZoomLevel
在当前缩放级别下,基于地图中心点,1 screen point 对应的距离(单位为米)。
返回对应的距离(单位为米)。
- (double) metersPerPointForZoomLevel:
(CGFloat) 
在指定的缩放级别下,基于地图中心点,1 screen point 对应的距离(单位为米)。
zoomLevel指定的缩放级别,在[minZoomLevel, maxZoomLevel]范围内。
返回对应的距离(单位为米)。
- () regionThatFits:
根据当前地图视图 frame 的大小调整 region 范围。
注解调整过程中当前地图的中心点不会改变。
region要调整的经纬度范围。
返回调整后的经纬度范围。
- (void) removeAnnotation:
annotation
移除标注。
annotation要移除的标注。
- (void) removeAnnotations:
(NSArray *) 
annotations
移除一组标注。
annotations要移除的标注数组。
- (void) removeOverlay:
移除 Overlay。
overlay要移除的 Overlay。
Provided by category .
- (void) removeOverlays:
(NSArray *) 
移除一组 Overlay。
overlays要移除的 overlay 数组。
Provided by category .
- (void) selectAnnotation:
annotation
(BOOL) 
animated 
选中标注对象对应的 view。
annotation标注对象。
animated是否有动画效果。
- (void) setCameraDegree:
(CGFloat) 
cameraDegree
(BOOL) 
(CFTimeInterval) 
duration 
根据给定的参数设置地图相机角度。
cameraDegree相机角度,范围为[0.f, 45.f]。
animated是否有动画效果。
duration动画时间。
- (void) setCenterCoordinate:
(CLLocationCoordinate2D) 
coordinate
(BOOL) 
animated 
根据给定的参数设置当前地图的中心点。
注解改变该值时,地图的比例尺级别不会发生变化。
coordinate中心点经纬度坐标。
animated是否有动画效果。
- (void) setRegion:
(BOOL) 
animated 
根据给定的参数设置当前地图的显示范围。
region经纬度区域。
animated是否有动画效果。
- (void) setRotationDegree:
(CGFloat) 
rotationDegree
(BOOL) 
(CFTimeInterval) 
duration 
根据给定的参数设置地图旋转角度。
rotationDegree旋转角度(逆时针为正向)。
animated是否有动画效果。
duration动画时间。
- (void) setUserTrackingMode:
(BOOL) 
animated 
根据给定的参数设置定位用户位置的模式。
mode定位用户位置的模式。
animated动画效果。
- (void) setVisibleMapRect:
(BOOL) 
animated 
根据给定的参数设置可见区域。
mapRect指定的区域。
animated是否有动画效果。
- (void) setVisibleMapRect:
edgePadding:
(UIEdgeInsets) 
(BOOL) 
animate 
根据当前地图视图frame的大小调整投影范围。
mapRect要调整的投影矩形。
insets嵌入数据。
animate是否有动画效果。
返回调整后的投影范围。
- (void) setZoomLevel:
(CGFloat) 
(BOOL) 
animated 
根据给定的参数设置缩放级别。
zoomLevel指定的缩放级别。
animated是否有动画效果。
- (void) setZoomLevel:
(CGFloat) 
(CGPoint) 
(BOOL) 
animated 
根据指定的枢纽点来缩放地图。
zoomLevel缩放级别。
pivot枢纽点(基于地图view的坐标系)。
animated是否有动画效果。
- (void) showAnnotations:
(NSArray *) 
annotations
(BOOL) 
animated 
在地图中显示数组中所有的标注对象。
annotations标注对象数组。
animated是否有动画效果。
- (UIImage *) takeSnapshotInRect:
(CGRect) 
对指定区域内的内容进行截图(默认会包含该区域内的标注 view)。
rect指定的区域。
返回截图 image。
Provided by category .
- ( *) viewForAnnotation:
annotation
返回与指定的标注对象关联的标注 view。
annotation指定的标注对象。
返回对应的标注 view。
- ( *) viewForOverlay:
查找指定 Overlay 对应的 view,如果该 view 尚未创建,返回 nil。
overlay指定的 Overlay。
返回指定overlay 对应的 view。
Provided by category .
- (BOOL) customizeUserLocationAccuracyCircleRepresentation
readwritenonatomicassign
是否显示用户自定义定位精度圈, 默认为 NO。
注解若设置 YES,会调用 MAMapViewDelegete::mapView:viewForOverlay: 回调函数,按照所设置的 Overlay 的样式显示定位精度圈,若回调函数返回 nil, 则不加载。
若设置为 NO ,会使用默认的样式。
- (BOOL) openGLESDisabled
readwritenonatomicassign
是否开启 OpenGLES 绘制操作。
注解YES 为停止, NO 为开启。当设置为 YES 后,必须使用 NO 开启, 否则地图不会刷新。
对应的回调是
Provided by category .
- (BOOL) rotateEnabled
readwritenonatomicassign
是否支持旋转。默认值为 YES,表示可旋转。
注解如果设置为NO,表示地图不可旋转。
- (BOOL) scrollEnabled
readwritenonatomicassign
是否支持平移。默认为 YES,表示可以平移地图。
注解如果设置为 NO,表示地图不可平移。
- (BOOL) showTraffic
readwritenonatomicassign
是否显示交通。默认值为 NO,表示不显示实时交通。
注解如果设置为 YES,表示显示实时交通。
- (BOOL) touchPOIEnabled
readwritenonatomicassign
是否支持单击地图获取 POI 信息。默认值为 NO。
注解当设置为 YES 时,触发
回调函数。
- (BOOL) zoomEnabled
readwritenonatomicassign
是否支持缩放。默认值为 YES,表示可缩放。
注解如果设置为 NO,表示不可手势缩放地图。
该类的文档由以下文件生成:
© 2014 高德软件有限公司 版权所有,保留所有权利。百度、谷歌高德等网络地图经纬度偏差纠正以及相关坐标系问题
根据经验得到的:
(1)百度地图的差别是(0.01185,-0.00328)
如果百度地图的经纬度是(x,y)实际的应该是(x,y)+(-0.01185,-0.00328)=(x-0.01185,y-0.00328)
(2)google Map的差别是(0.0143,-0.014)
如果用getscreen截图,如果要截的范围为(x,y),输入getscreen的为(x-0.0143,y+0.014).
后来经过自己验证,的却差不多。
下面讲一下网络发布的地图的偏差问题:
参见微信上高德LBS应用开发,原创的一篇帖子:
摘要:各种坐标体系之间如何转换?到底有哪些坐标体系?什么是火星坐标?为什么我的坐标在地图上显示会有偏移?本文详细解答以上问题。最后给出坐标拾取工具。
一、坐标体系
首先我们要明白,开发者能接触到哪些坐标体系呢?
第一种分类:
GPS,WGS-84,原始坐标体系。一般用国际标准的GPS记录仪记录下来的坐标,都是GPS的坐标。很可惜,在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密。GPS坐标形式如图,度分秒形式的经纬度:
GCJ-02,国测局02年发布的坐标体系。又称“火星坐标”。在中国,必须至少使用GCJ-02的坐标体系。比如谷歌,腾讯,高德都在用这个坐标体系。GCJ-02也是国内最广泛使用的坐标体系。
3、其他坐标体系。一般都是由GCJ-02进过偏移算法得到的。这种体系就根据每个公司的不同,坐标体系都不一样了。比如,百度和搜狗就使用自己的坐标体系,与其他坐标体系不兼容。
第二种分类:
首先明白,所有坐标体系的原点,都是非洲。
1、经纬度。这个是球面坐标,对于北京来说,就是(116.961)这样的坐标。比如腾讯、高德、百度都是这样的经纬度坐标。谷歌是经纬度顺序写反的经纬度坐标。
如果是度分秒坐标,需要进行转换,才能得到这样的经纬度坐标。详见坐标转换。
2、墨卡托坐标。平面坐标,相当于是直线距离,数字一般都比较大,像这样的。(
墨卡托坐标,主要用于程序的后台计算。直线距离嘛,加加减减几乎计算方便。
搜狗地图API就是直接使用的墨卡托坐标。
二、坐标转换
在各种web端平台,或者高德、腾讯、百度上取到的坐标,都不是GPS坐标,都是GCJ-02坐标,或者自己的偏移坐标系。
比如,你在谷歌地图API,高德地图API,腾讯地图API上取到的,都是GCJ-02坐标,他们三家都是通用的,也适用于大部分地图API产品,以及他们的地图产品。
例外,百度API上取到的,是BD-09坐标,只适用于百度地图相关产品。
例外,搜狗API上取到的,是搜狗坐标,只适用于搜狗地图相关产品。
例外,谷歌地球,google
earth上取到的,是GPS坐标,而且是度分秒形式的经纬度坐标。在国内不允许使用。必须转换为GCJ-02坐标。
1、度分秒坐标转换为经纬度
比如,在GPS记录仪,或者google
earth上采集到的是39°31'20.51,那么应该这样换算,31分就是31/60度,20.51秒就是20.51/3600度,结果就是39
+ 31/60 + 20.51/3600 度。
GPS转换为GCJ-02坐标
谷歌,高德,腾讯的地图API官网上,都不直接提供这样的坐标转换。如果要得到GCJ-02坐标,最好在他们的地图上直接取点,或者通过地址解析得到。(这个工具我后续会贴出来的。我就爱干这样的事情,哈哈。)
不过,在网上搜到了这样的接口,该接口的type=1就是GPS转到GCJ-02的墨卡托坐标。请大家对接口保密,哈哈。详见:
/api/documentation/javascript/api2.5/interface_translate.html#late_intro
3、GCJ-02与BD-09之间互转
国测局GCJ-02坐标体系(谷歌、高德、腾讯),与百度坐标BD-09体系的转换,在CSDN上有很详细的讲解:
转换算法如下:
不过也有更简单的算法,线性算法(lat和lng是经纬度,球面坐标):
To_B是转到百度,To_G是转到GCJ-02。
var TO_BLNG =
function(lng){return lng+0.0065;};
var TO_BLAT =
function(lat){return lat+0.0060;};
var TO_GLNG =
function(lng){return lng-0.0065;};
var TO_GLAT =
function(lat){return lat-0.0060;};
4、经纬纬度转成墨卡托
网上也有详细讲解:
内容如下:
在WebGIS的开发中经常用到的地图投影为Web墨卡托和WGS84,故歌地图,bingmaps,百度地图,mapabc,mapbar,以及ArcGIS
online上的大部分地图为Web墨卡托地图,ArcGIS online上最开始发布的地图投影为WGS84。
在开发过程中很多时候会遇到不同坐标系之间互转的问题,特别是底图使用Web墨卡托,定位(GPS,wifi等)信号坐标为WGS84坐标的时候,那么通用解决方案就是写一个坐标参考系的转换库,类似于proj4,但一般情况下很少用到那么多的参考系之间的互转,并且在客户端实现或者调用proj4都是一件很困难或者麻烦的事情,大多数情况下我们实现Web墨卡托坐标与WGS84坐标互转就可以了。
下面是使用objective-c实现的Web墨卡托坐标与WGS84坐标互转程序,当然也可以使用其他语言来实现,使用起来比较简单和方便。
//经纬度转墨卡托
-(CGPoint )lonLat2Mercator:(CGPoint ) lonLat
&&& double x =
lonLat.x */180;
&&& double y =
log(tan((90+lonLat.y)*M_PI/360))/(M_PI/180);
&&& mercator.x =
&&& mercator.y =
&&& return
//墨卡托转经纬度
-(CGPoint )Mercator2lonLat:(CGPoint ) mercator
&&& CGPoint
&&& double x =
mercator.x/*180;
&&& double y =
mercator.y/*180;
180/M_PI*(2*atan(exp(y*M_PI/180))-M_PI/2);
&&& lonLat.x =
&&& lonLat.y =
&&& return
三、坐标偏移
如果您的坐标在转换之后,还有偏移,那么考虑以下几个方面。
A、原始坐标系弄错,比如以为自己是GPS坐标,但其实已经是GCJ-02坐标。
解决方案:请确保采集到的数据是哪个坐标体系,需要转换到哪个坐标系,再进行坐标转换。
B、原始坐标准确度不够
解决方案:如果您是GPS坐标,请确保采集GPS数据时,搜到至少4颗以上的卫星。并且GPS数据准不准,还取决于周围建筑物的高度,越高越不准,因为有遮挡。
如果本来就是GCJ-02坐标,在不同地图放大级别的时候,看到的地方可能不一样。比如你在地图级别4(国家)取到的坐标,放大到地图12级(街道)时,坐标就偏了。请确保在地图最大放大级别时,拾取坐标。
C、度分秒的概念混淆
比如,在google
earth上采集到的是39°31'20.51,那么应该这样换算,31分就是31/60度,20.51秒就是20.51/3600度,结果就是39
+ 31/60 + 20.51/3600 度。
D、经纬度顺序写反了
有些公司(比如高德,百度,腾讯)是先经度,再纬度,即Point(lng lat)。但谷歌坐标的顺序恰好相反,是(lat
四、坐标拾取工具
既然在国内必须至少使用GCJ-02的坐标系,而GCJ-02,“火星坐标”是在国内最广泛使用的坐标体系。那么,我们就来看看,如何直接获取到GCJ-02坐标呗。
请大家把这段代码保存到记事本里,然后后缀名改为.html,记得用UTF-8编码来保存。然后双击这个文件,就能打开网页了。
火星坐标:&
1、鼠标滚轮可以缩放地图,拖动地图。
2、点击地图,即可获得GCJ-02的经纬度坐标,地址。
打开之后,是这样的:
点击一下地图,即可获得GCJ-02坐标,地址:
demo地址:/amap/picpoint.html
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。百度地图坐标系 google地图坐标系 谷歌地图坐标系 数学上的坐标系 平面直角坐标系..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
第二节地图上的坐标系
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口482,381 十一月 独立访问用户
您目前处于:
高德地图LBS开放平台系列沙龙现场实录:常见问题答疑、省电技巧、摇摇公交离线查询思路分享、新版SDK功能介绍
高德地图LBS开放平台系列沙龙现场实录:常见问题答疑、省电技巧、摇摇公交离线查询思路分享、新版SDK功能介绍
相关厂商内容
相关赞助商
Windows Azure专区上线,全面了解云服务!
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
Jesus Rodriguez
Jonathan Allen
赞助商链接
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7Google地图坐标转换成wgs84坐标工具 | 误入骑途小组 | 果壳网 科技有意思
11878人加入此小组
这个小工具核心来源于网络上的Mars2WGS.txt及代码, 我是参考的"米老头"的Blog. 自己重新包装了一下, 改了点代码以及增加了点功能. 主要是手上找到的地图纠偏工具总是有这样那样的不顺手什么的, 干脆自己写吧.源代码在, 愿意自己再改进的就去clone好了.现在实现的功能, 可以加偏/纠偏单一的经纬度值, 获得加偏/纠偏后的值以及与原值的差值. 也支持载入GPX(Waypoint/Route/Track三种节点类型), KML(coordinates节点类型)格式的文件, 加偏/纠偏后输出.差值主要用于GlobalMapper等工具对地图/轨迹整体平移, GPX/KML主要用于在GoogleMaps上规划好路线后导出, 然后输入到行者/OruxMaps等导航和轨迹记录软件里面.主界面如下很简单.[url=]查看大图[/url]GPX/KML可以直接拖拽到Source文本框, 或者双击文本框弹出对话框选择. 通常会把自动加上坐标类型后的名称填写到Target文本框(和源文件同一位置), 或者自己选择双击Target文本框选择输出的文件.===============:-----------版本小更新, 现已支持OruxMaps离线地图的偏移修正(地图来源GoogleMaps/MapABC等高德系列的), 不过由于OruxMaps纠偏原理的问题, 只能是区域线性纠偏. 原有的航迹/航线纠偏是对航迹/航线内的点进行逐点纠偏, 区域跨度大的时候可能相对精确一点. PS: 源码和二进制均已更新到BitBucket. Clone/下载过如有需要请重新Clone/下载.:-----------此次版本更新修改项目二进制运行所需 .net 平台 从 4.0 Client 到 3.5 Client, PS: 此项目完成的有点马虎, 没考虑到客户端运行平台需求, 一直忘了修改运行平台, 对直接下载二进制使用的各位用户造成的可能影响和困惑, 感到非常抱歉.:-----------此次版本更新修改修正按照拟合公式转换经纬度时的范围判断错误, 从包含几乎整个北纬57以下修正为只转换大陆范围(包括海南岛, 但没有曾母暗沙之类的南海岛群)===============欢迎提供意见 ;)
+ 加入我的果篮
果壳性情站编辑
英语学士,运动达人,单车骑士
还有个英文软件CardioTrainer,我用了一个月,但就是没有海拔高度,其他都很好,还有语音提示卡路里消耗值、里程数、时间。ps行者能增加语音功能会好很多。
引用 的话:还有个英文软件CardioTrainer,我用了一个月,但就是没有海拔高度,其他都很好,还有语音提示卡路里消耗值、里程数、时间。ps行者能增加语音功能会好很多。我现在基本都是用OruxMaps(此软件完全免费)配合自己用OpenCycleMaps做的离线地图, 海拔可以通过下载SRTM3的30MDEM数据显示或者GPS高度, 支持载入航迹,按照设定的路点TTS语音, 可以配合外置的Polar心率带什么的计算能量消耗, 我觉得是功能很好用也很稳定. 不过我手机上的GPS极其不得力, 考虑买个外接蓝牙GPS.PS: 语音其实调用TTS应该就可以了吧? 不过国内的很多Android手机都不带中文TTS资源库的, 所以添加这个功能实用性就难说了.
版本小更新, 现已支持OruxMaps离线地图的偏移修正(地图来源GoogleMaps/MapABC等高德系列的),不过由于OruxMaps纠偏原理的问题, 只能是区域线性纠偏.原有的航迹/航线纠偏是对航迹/航线内的点进行逐点纠偏, 区域跨度大的时候可能相对精确一点. 下载地址见主贴.
英语学士,运动达人,单车骑士
引用 的话:我现在基本都是用OruxMaps(此软件完全免费)配合自己用OpenCycleMaps做的离线地图, 海拔可以通过下载SRTM3的30MDEM数据显示或者GPS高度, 支持载入航迹,按照设定的路点T...唉,这么麻烦,今天在7月刊的《骑迹》看了GARMIN和FINEX联合开发的一款导航腕表,真想攒点钱买一条。。。
引用 的话:Garmin的大多数东西价格有点坑, 我手上的eTrexVista基本半报废状态吧, 1. 重; 2. 耗电; 3. 地图更新几乎没有, 都是网友自制的(我的从USA买的, 还不支持中文的地图), 其实ANT+设备在国内不够普及, 成本也高了点, 否则可以配合智能机上的很多应用. PS:里程的话, 还是传统的比GPS要精确一点. GPS还是比较适合野外啊.
英语学士,运动达人,单车骑士
引用 的话:Garmin的大多数东西价格有点坑, 我手上的eTrexVista基本半报废状态吧, 1. 重; 2. 耗电; 3. 地图更新几乎没有, 都是网友自制的(我的从USA买的, 还不支持中文的地图),...恩,行者咯~
引用 的话:本小更新, 现已支持OruxMaps离线地图的偏移修正(地图来源GoogleMaps/MapABC等高德系列的),不过由于OruxMaps纠偏原理的问题, 只能是区域线性纠偏.原有的航迹/航线纠偏是...可否直接在手机的GPS信号上做个转换插件,实时的把WGS转成MARS然后再传给google地图,这样就正确了!您的软件很给力哦,感激ing...
引用 的话:可否直接在手机的GPS信号上做个转换插件,实时的把WGS转成MARS然后再传给google地图,这样就正确了!您的软件很给力哦,感激ing...手机内置的GPS应该是没办法的(内部人员或许有办法, 不过我没辙), 外置GPS, 或许可以找到一个蓝牙GPS的APP源码, 修改下. 不过这样改了其实没有多少意义啊, 因为虽然地图上看着是对了, 但是实际记下来的坐标是变换过的有偏差的轨迹/路点. 比较理想的是地图程序里面直接加类似的代码, 看着正确, 实际记录的也是正确GPS数据. 软件功能核心也是网络上其他人贡献的, 我这只算是重新包装了一下, 用起来更简单顺手罢了.
引用 的话:手机内置的GPS应该是没办法的(内部人员或许有办法, 不过我没辙), 外置GPS, 或许可以找到一个蓝牙GPS的APP源码, 修改下. 不过这样改了其实没有多少意义啊, 因为虽然地图上看着是对了,...再次感谢你的回复以及这个软件,我找了很久,似乎就你的这个能用!呵,非常感谢!“因为虽然地图上看着是对了, 但是实际记下来的坐标是变换过的有偏差的轨迹/路点 ”用手机记录轨迹的话应该相当耗电吧?所以可能一般人不会用手机直接记录。我主要想用它导航,载入现有的轨迹和坐标点,这两个问题你的这个软件都帮很好的解决了。现在就剩这个当前坐标的问题了,不行再找找吧,或许过段时间就会有哪位奉献出来。您应该是专业做软件开发的吧?居然要.net 4,我一般不到万不得已是不愿升级的,呵呵,你又带我升到了4.
引用 的话:再次感谢你的回复以及这个软件,我找了很久,似乎就你的这个能用!呵,非常感谢!“因为虽然地图上看着是对了, 但是实际记下来的坐标是变换过的有偏差的轨迹/路点 ”用手机记录轨迹的话应该相当耗电...不知道你用哪种地图导航, 不过很多国内的地图在地图模式下显示当前坐标时, 应该都是加偏过的,你叠加卫星图/地形图的时候,自然就会有偏移.并非专业软件开发, 实际上是做硬件开发的,所以代码效率其实不高, 只是完成逻辑而已.至于.net 4的问题, 我只是用VC# Express 2010直接做的,并未特意修改项目用3.5, 所以见谅. 有兴趣也可以自己Clone代码后, 自行编译为.net 3.5的.
引用 的话:再次感谢你的回复以及这个软件,我找了很久,似乎就你的这个能用!呵,非常感谢!“因为虽然地图上看着是对了, 但是实际记下来的坐标是变换过的有偏差的轨迹/路点 ”用手机记录轨迹的话应该相当耗电...以前一直都没发现这个需要.Net 4 Client的问题, 已经重新编译了. 只要有.net 3.5 client就可以了.
一直都用google地图,装了这个oruxmaps发现似乎还是google的地图好,主要觉得google的信息量比较大。因为之前在google地图中保存了很多POI,但是google地图加载POI必须联网,不支持离线,要联网你是知道的,非常慢,甚至有的地方似乎没有GPRS网络(因我常出差到处乱跑)。不过幸运的是,google的这些POI是可以下载保存为.kml文件的,当然,这个文件是偏的,我郁闷了很久,终于在几日前发现你的这个软件可以很好的转换过来。google地图总是偏的,如果加载偏的.kml就没问题,但是其它比如openstreet就有问题。所以现在最大的问题就是OruxMaps加载google地图时,GPS偏移的问题了。之所以还是用google的地图,主要就是因为它信息量大且g地图不支持离线加载POI,出差在外每次连接GPRS非常麻烦。您做硬件开发?还会用VC?嘿,咱们同行,我之前一直也做硬件开发,不过都是比较简单的控制工作,MCU、STM32类的比较多,不过软件到现在还是只会C,PC平台,我一直想试着用LabWindows,就因为它是纯C,呵呵,不过只是会个皮毛,或许以后换工作会用到,有空再来研究下你的代码。
这个就是最新的完整代码包吗?这个网站没去过,不了解,不好意思。。 thanks you ....
引用 的话:直都用google地图,装了这个oruxmaps发现似乎还是google的地图好,主要觉得google的信息量比较大。因为之前在google地图中保存了很多POI,但是google地图加载POI必...我基本上都是用MobileAtlasCreator 做离线地图的, Google/MapABC的地图只是用于大范围或者城市细节(缩放级别&8, &16), 中间的缩放级别都 用OpenStreetMap来做. 所以地图直接线性纠偏此&16这部分的结果还算是可以接受的, 因为跨越区域小. 缺点就是缩放时会出现显示风格的突变, 不过无所谓了, 自己用习惯就好.PS0: 现在做硬件, 尤其是嵌入式一般都得会一点PC端的编程, 写点自用小工具什么的吧.PS1: LabWindows说实话, 除了库比较实用, 其他比较难用, 尤其是写UI的时候那些CallBack写起来很麻烦, 我很久以前写的一些应用,花了不少时间才完成. 只是实验室使用的快速原型的话不如直接用LabView了, 生产线么或许用其他工具写个壳调用它做的库可能会好一点.如果不用那些信号处理之类的库, 直接操纵488.2, 哪种语言都是很轻松的.
引用 的话:这个就是最新的完整代码包吗?这个网站没去过,不了解,不好意思。。thanks you ....是的, 这是个代码仓库, 就像sourceForge/GitHub
不知是什么原因,我发现坐标转换不可逆,比如WGS转换成Mars,然后再转回去,就不一致了,不过一般差距在小数点后的第5位。 缺点就是缩放时会出现显示风格的突变,它还可以自动切换地图?
引用 的话:不知是什么原因,我发现坐标转换不可逆,比如WGS转换成Mars,然后再转回去,就不一致了,不过一般差距在小数点后的第5位。缺点就是缩放时会出现显示风格的突变,它还可以自动切换地图?由于转换的算法原因, 是单向不可逆的, 纠偏采取的是插值以及近似值, 所以转换后再转回去一定是有差别的, 不过一般都在可接受的精度范围内(我查到的资料说大约10M以内).可以啊, 只要做地图的时候分区制作, 离开当前边界或者缩放级别不存在就会弹出窗口让你选择要继续载入哪个区域的地图.
引用 的话:不知是什么原因,我发现坐标转换不可逆,比如WGS转换成Mars,然后再转回去,就不一致了,不过一般差距在小数点后的第5位。缺点就是缩放时会出现显示风格的突变,它还可以自动切换地图?其实还有一个OpenStreetMap的中国全矢量地图, 大约120M, 就是实时渲染的速度有点慢. 新的5.5.3版本还可以通过调用BRouter来离线规划路线(需要下载BRoute的路线数据), 虽然有BUG, 不过也算可以用一用.
似乎发现几个问题,1、不知是不是那个原始的坐标矫正文件的问题还是软件处理的问题,软件似乎没有自动判断一段轨迹该不该偏。 比如我测试了一段新加坡的轨迹,软件也可以转,可是人家那个地方没咱们先进呐?!2、软件似乎对轨迹的时间处理存在一定问题,不少轨迹的统计中,起始时间与结束时间居然都是1970年,好像70年1月1日吧,起始结束时间也都是8:30,反正肯定是70年、时间是8:30,日期记不太清了。本来想找出具体在什么情况下会这样的,但还是没能发现为什么,不好意思。
引用 的话:乎发现几个问题,1、不知是不是那个原始的坐标矫正文件的问题还是软件处理的问题,软件似乎没有自动判断一段轨迹该不该偏。比如我测试了一段新加坡的轨迹,软件也可以转,可是人家那个地方没咱们先进呐?!...1. 代码内有经纬度判断, 只有国内部分才转换, 新加坡的应该不会转换的(会提示已转换,但实际内容应该和原来一致, 最多XML格式略有区别). 而且转换是按路点逐个判断转换的. 如果有确实有变化, 我呀查查代码看.2. 软件不处理任何轨迹文件重的路点经纬度意外资料. 所以时间问题, 应该是原始记录就是这样的吧?
呵呵,也在啊,又看了一下,比如导入从google的在线“我的地图”中下载的POI时,格式是.kml,大概因为创建的这些点中每一个点都没有时间,所以就全部显示为“ 8:30”了,不过也或许是你没处理,但Oruxmaps自作主张显示了默认的,我这全部是1970年,郁闷,呵呵。新加坡的你真的转了^_^thank you very much....
引用 的话:呵,也在啊,又看了一下,比如导入从google的在线“我的地图”中下载的POI时,格式是.kml,大概因为创建的这些点中每一个点都没有时间,所以就全部显示为“ 8:30”了,不过也...嗯, 我没有处理时间, 估计就都是默认的UNIX初始时间了.至于经纬度, 如果用查表的法子,lon& 72 or lon& 137.9 orlat& 10 orlat& 54.9就不转换直接返回的.至于通过拟合公式来转换的过程, 确实发现了一个BUG, 10敲成0.8了, 所以新加坡就被转了 :(. 10分钟后, 应该可以下载BUG修正版了
哈哈,老兄果然高手,这么快就找到了,代表广大网友道声谢谢啦啊!
引用 的话:不用谢, 用着方便顺手就好. 顺便欢迎传播, 哈哈.PS: 真要是高手, 不会出这种低级BUG的 :P
那个免费的托管服务器支持在线留言吗?如果支持,下次再有什么问题到那里告诉你,这样可以保留下来,也便于其它人参考你的代码。还有,那个服务器支持版本管理吗?可以依次看各个版本吗?如果支持,支持哪些版本工具?支持SVN不?我只会用点这玩意^_^不好意思,对那个网站不太了解。
引用 的话:个免费的托管服务器支持在线留言吗?如果支持,下次再有什么问题到那里告诉你,这样可以保留下来,也便于其它人参考你的代码。还有,那个服务器支持版本管理吗?可以依次看各个版本吗?如果支持,支持哪些版本...那就是版本管理的在线托管, 支持git和hg(Mercurial ). 有BUG可以直接在"问题" 下面添加 . Clone回去的代码包含所有历史版本, 下载的应该只有head.PS: 我个人是觉得hg和git这两个分布式版本管理比SVN好用:P. 常用的几个功能,用起来和SVN没什么区别. 我的本地所有代码已经都从自己SVN服务器转到了 hg 上了.
oh,my god,,,这两个我竟然头一次听说,汗。。。谢谢。。
老兄,我用GE规划了一段路径,然后用你的工具转到MARS,然后把GPS上传到行者和搜狗,但还是偏啊,是不是方法错了,请老兄指正,谢谢
空间信息与数字技术专业
我们空间分析可以用啊!!!!!!!!!!!!!!!!!!!!!!
引用 的话:老兄,我用GE规划了一段路径,然后用你的工具转到MARS,然后把GPS上传到行者和搜狗,但还是偏啊,是不是方法错了,请老兄指正,谢谢行者我记得内部应该已经纠偏过了. 所以无需转换到MARS去的. 搜狗地图我就不知道了, 估计加偏算法不一样吧. 我这个已经注明了暂时只能针对高德系的地图(Google/MapABC).
引用 的话:我们空间分析可以用啊!!!!!!!!!!!!!!!!!!!!!!空间分析? 我觉着应该用不到这个坐标转换工具吧. :P
空间信息与数字技术专业
引用 的话:空间分析? 我觉着应该用不到这个坐标转换工具吧. :P话说你是做什么的加入
引用 的话:话说你是做什么的baseband, test &measurement
能给个做好的工具给我么?急用
下载不下来
引用 的话:NetCharm 你好 能给个做好的工具给我么?急用 下载不下来你也可以去百度下载. 链接:
(C)2013果壳网&京ICP备号-2&京公网安备

我要回帖

更多关于 天正如何设置坐标系 的文章

 

随机推荐