当前位置: 编程技术>移动开发
本页文章导读:
▪已知一个点的中纬度,通过距离求另外一个点的经纬度 已知一个点的经纬度,通过距离求另外一个点的经纬度
#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时不会输出。
最新技术文章: