当前位置: 编程技术>移动开发
本页文章导读:
▪已知一个点的中纬度,通过距离求另外一个点的经纬度 已知一个点的经纬度,通过距离求另外一个点的经纬度
#include <math.h>
#define KmPerDegree 111.12000071117
#define DegreesPerKm (1.0/KmPerDegree)
#define PI M_PI
#define TwoPI (M_PI+M_PI)
#define HalfPI M_PI_2
#define.........
▪ google 地图 google map
1.转到D:\program\android-sdk-windows\.android\debug.keystore所在目录运行(此目录所在地可看eclipse->preferences->android->build可看到。运行cmd,转到上面目录运行keytool -list -alias androiddebugkey -.........
▪ xcode调试技艺(预处理器控制输出打印信息) xcode调试技巧(预处理器控制输出打印信息)
iPhone 应用发布后,程序运行过程中尽量不要有调试 log 信息输出,这样会影响程序运行的效率。通过宏定义设置,使程序只在 debug 模式下输.........
[1]已知一个点的中纬度,通过距离求另外一个点的经纬度
来源: 互联网 发布时间: 2014-02-18
已知一个点的经纬度,通过距离求另外一个点的经纬度
#include <math.h> #define KmPerDegree 111.12000071117 #define DegreesPerKm (1.0/KmPerDegree) #define PI M_PI #define TwoPI (M_PI+M_PI) #define HalfPI M_PI_2 #define RadiansPerDegree (PI/180.0) #define DegreesPerRadian (180.0/PI) #define copysign(x,y) (((y)<0.0)?-fabs(x):fabs(x)) #define NGT1(x) (fabs(x)>1.0?copysign(1.0,x):(x)) //#define ArcCos(x) (fabs(x)>1?quiet_nan():acos(x)) //Hack #define ArcCos(x) (acos(x)) #define hav(x) ((1.0-cos(x))*0.5) /* haversine */ #define ahav(x) (ArcCos(NGT1(1.0-((x)*2.0)))) /* arc haversine */ #define sec(x) (1.0/cos(x)) /* secant */ #define csc(x) (1.0/sin(x)) /* cosecant */
-(CLLocation*) moveLocation:(CLLocation*)startLocation:(double)movementInMeters:(double)movementBearing { double dist = (movementInMeters / 1000); /* -> great-circle distance (km) */ double course = movementBearing; /* -> initial great-circle course (degrees) */ double slt = startLocation.coordinate.latitude; /* -> starting decimal latitude (-S) */ double slg = startLocation.coordinate.longitude; /* -> starting decimal longitude(-W) */ double xlt = 0; /* <- ending decimal latitude (-S) */ double xlg = 0; /* <- ending decimal longitude(-W) */ double c, d, dLo, L1, L2, coL1, coL2, l; if (dist > KmPerDegree*180.0) { course -= 180.0; if (course < 0.0) course += 360.0; dist = KmPerDegree*360.0-dist; } if (course > 180.0) course -= 360.0; c = course*RadiansPerDegree; d = dist*DegreesPerKm*RadiansPerDegree; L1 = slt*RadiansPerDegree; slg *= RadiansPerDegree; coL1 = (90.0-slt)*RadiansPerDegree; coL2 = ahav(hav(c)/(sec(L1)*csc(d))+hav(d-coL1)); L2 = HalfPI-coL2; l = L2-L1; if ((dLo=(cos(L1)*cos(L2))) != 0.0) dLo = ahav((hav(d)-hav(l))/dLo); if (c < 0.0) dLo = -dLo; slg += dLo; if (slg < -PI) slg += TwoPI; else if (slg > PI) slg -= TwoPI; xlt = L2*DegreesPerRadian; xlg = slg*DegreesPerRadian; CLLocation *tempLocation = [[[CLLocation alloc] initWithLatitude:xlt longitude:xlg] autorelease]; return tempLocation; }
[2] google 地图
来源: 互联网 发布时间: 2014-02-18
google map
1.转到D:\program\android-sdk-windows\.android\debug.keystore所在目录
运行(此目录所在地可看eclipse->preferences->android->build可看到。
运行cmd,转到上面目录运行
keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android
D:\program\android-sdk-windows\.android>keytool -list -alias androiddebugkey -ke
ystore debug.keystore -storepass android -keypass android
androiddebugkey, 2011-8-18, PrivateKeyEntry,
认证指纹 (MD5): 6A:AC:1A:97:E5:58:4C:BA:23:24:C8:C0:80:85:77:DF
2.打开此网页
http://code.google.com/intl/zh-CN/android/maps-api-signup.html
输入上面的MD5就会生成map的APIKEY
<com.google.android.maps.MapView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0nVmhWlINfaDF6zfkDYC7MpfNVDqPJH0j7Koj4Q"
/>
1.转到D:\program\android-sdk-windows\.android\debug.keystore所在目录
运行(此目录所在地可看eclipse->preferences->android->build可看到。
运行cmd,转到上面目录运行
keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android
D:\program\android-sdk-windows\.android>keytool -list -alias androiddebugkey -ke
ystore debug.keystore -storepass android -keypass android
androiddebugkey, 2011-8-18, PrivateKeyEntry,
认证指纹 (MD5): 6A:AC:1A:97:E5:58:4C:BA:23:24:C8:C0:80:85:77:DF
2.打开此网页
http://code.google.com/intl/zh-CN/android/maps-api-signup.html
输入上面的MD5就会生成map的APIKEY
<com.google.android.maps.MapView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0nVmhWlINfaDF6zfkDYC7MpfNVDqPJH0j7Koj4Q"
/>
[3] xcode调试技艺(预处理器控制输出打印信息)
来源: 互联网 发布时间: 2014-02-18
xcode调试技巧(预处理器控制输出打印信息)
iPhone 应用发布后,程序运行过程中尽量不要有调试 log 信息输出,这样会影响程序运行的效率。通过宏定义设置,使程序只在 debug 模式下输出对我们有用的信息, release 时不会输出。
1、首先建立一个宏定义文件,文件内容如下:
#if DEBUG
#define debuglog(format, ...) NSLog(format, __VA_ARGS__)
#else
#define debuglog(format, ...)
#endif
2,打开project-->edit project setting 中bulid选项卡
选择 左上角的 Configuration 的 Debug,下面的下拉框选择->Edit Definition at this Level ,在下面找GCC4.2-preprocessing-preprocessor macros(预处理器)设置DEBUG=1
这样我们就可以做到log调试信息在release时不会输出。
iPhone 应用发布后,程序运行过程中尽量不要有调试 log 信息输出,这样会影响程序运行的效率。通过宏定义设置,使程序只在 debug 模式下输出对我们有用的信息, release 时不会输出。
1、首先建立一个宏定义文件,文件内容如下:
#if DEBUG
#define debuglog(format, ...) NSLog(format, __VA_ARGS__)
#else
#define debuglog(format, ...)
#endif
2,打开project-->edit project setting 中bulid选项卡
选择 左上角的 Configuration 的 Debug,下面的下拉框选择->Edit Definition at this Level ,在下面找GCC4.2-preprocessing-preprocessor macros(预处理器)设置DEBUG=1
这样我们就可以做到log调试信息在release时不会输出。
最新技术文章: