Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: gps.cpp
- Revision:
- 3:3cd62c194bd0
- Parent:
- 2:639bfe0721a7
- Child:
- 4:88f7837f947f
--- a/gps.cpp Wed Oct 30 05:14:03 2019 +0000 +++ b/gps.cpp Wed Oct 30 05:37:08 2019 +0000 @@ -7,7 +7,9 @@ int main() { - double distance(double a, double b) + double a; + double b; + double distance; pc.printf("GPS Start\n"); @@ -27,33 +29,28 @@ while(1){ if(gps.getgps()) { - - - pc.printf("(%lf,%lf)\n\r",gps.latitude,gps.longitude);//緯度と経度を表示 + pc.printf("(%lf,%lf)\n\r",gps.latitude,gps.longitude);//緯度と経度を表示 - - // 球面三角法により、大円距離(メートル)を求める - double distance(double c, double d) { - c = gps.latitude; - d = gps.longitude; + // 球面三角法により、大円距離(メートル)を求める + double c; + double d; + c = gps.latitude; + d = gps.longitude; - const double pi = 3.14159265359; // 円周率 + const double pi = 3.14159265359; // 円周率 double ra = a * pi / 180; double rb = b * pi / 180; // 緯度経度をラジアンに変換 double rc = c * pi / 180; double rd = d * pi / 180; - - + double e = sin(ra) * sin(rc) + cos(ra) * cos(rc) * cos(rb - rd); // 2点の中心角(ラジアン)を求める double rr = acos(e); const double earth_radius = 6378140; // 地球赤道半径(m) - double distance = earth_radius * rr; // 2点間の距離(m) - - return distance; - } + distance = earth_radius * rr; // 2点間の距離(m) + if (distance<5){ }else{ @@ -75,31 +72,3 @@ -// 球面三角法により、大円距離(メートル)を求める -double distance(double lat1, double lng1, double lat2, double lng2) { - - // 円周率 - const double pi = 3.14159265359; - - // 緯度経度をラジアンに変換 - double rlat1 = lat1 * pi / 180; - double rlng1 = lng1 * pi / 180; - double rlat2 = lat2 * pi / 180; - double rlng2 = lng2 * pi / 180; - - // 2点の中心角(ラジアン)を求める - double a = - sin(rlat1) * sin(rlat2) + - cos(rlat1) * cos(rlat2) * - cos(rlng1 - rlng2); - double rr = acos(a); - - // 地球赤道半径(メートル) - const double earth_radius = 6378140; - - // 2点間の距離(メートル) - double distance = earth_radius * rr; - - return distance; -} -