网站如何做才能被百度等收录,网站建设东莞公司,企业管理培训课程有哪些内容,厦门建设银行网站首页最近在Android上做GPS的东西#xff0c;获取经纬度、计算距离、方位角#xff0c;感觉在搞GIS样。当然#xff0c;玩笑了#xff0c;玩玩而已#xff0c;稍微总结一下。经度指示南北方向#xff0c;纵向。纬度指示东西方向#xff0c;横向.获取经纬度使用GPS权限#x…最近在Android上做GPS的东西获取经纬度、计算距离、方位角感觉在搞GIS样。当然玩笑了玩玩而已稍微总结一下。经度指示南北方向纵向。纬度指示东西方向横向.获取经纬度使用GPS权限Android提供LocationManager和Location可以方便的获得经纬度、海拔等位置。使用LocationManager来获得位置管理类从而可以获得历史GPS信息以及位置变化的监听注册使用Location来获得具体的位置信息。代码如下locationm (LocationManager) getSystemService(LOCATION_SERVICE);Criteria criteria newCriteria();criteria.setAccuracy(Criteria.ACCURACY_FINE);criteria.setAltitudeRequired(false);criteria.setBearingRequired(false);criteria.setCostAllowed(true);criteria.setPowerRequirement(Criteria.POWER_LOW);String provider locationm.getBestProvider(criteria,true);Location location locationm.getLastKnownLocation(provider);//获得上次的记录gps_loc(location);LocationListener GPS_listener newLocationListener() {//监听位置变化实时获取位置信息OverridepublicvoidonStatusChanged(String provider,intstatus,Bundle extras) {//TODOAuto-generated method stub}OverridepublicvoidonProviderEnabled(String provider) {//TODOAuto-generated method stub}OverridepublicvoidonProviderDisabled(String provider) {//TODOAuto-generated method stub}OverridepublicvoidonLocationChanged(Location location) {//TODOAuto-generated method stub//位置发生改变时gps_loc(location);}};locationm.requestLocationUpdates(provider, 1000, 0, GPS_listener);}//获得自己位置privatevoidgps_loc(Location location) {if(location !null) {self_weidu location.getLatitude();self_jindu location.getLongitude();}else{self_weidu 0;self_jindu 0;}}两点经纬度计算距离1.Lat1 Lung1表示A点经纬度Lat2 Lung2表示B点经纬度2.aLat1–Lat2为两点纬度之差bLung1 -Lung2为两点经度之差3.6378.137为地球半径单位为千米计算出来的结果单位为千米。我作为不明真相的群众就围观转一下maps的代码计算的结果是米为单位。//计算两点距离privatefinaldoubleEARTH_RADIUS 6378137.0;privatedoublegps2m(doublelat_a,doublelng_a,doublelat_b,doublelng_b) {doubleradLat1 (lat_a * Math.PI/ 180.0);doubleradLat2 (lat_b * Math.PI/ 180.0);doublea radLat1 - radLat2;doubleb (lng_a - lng_b) * Math.PI/ 180.0;doubles 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) Math.cos(radLat1) * Math.cos(radLat2)* Math.pow(Math.sin(b / 2), 2)));s s *EARTH_RADIUS;s Math.Round(s * 10000) / 10000;returns;}两点经纬度计算方位角方位角这个玩意更加是不知道计算公式在谷歌上搜了两个钟头也没找到公式。在一个移动通信论坛有工具只是下不了非得邀请码才注册和那个什么社区一样了。最后在下了一个excel用它的计算公式写了一个。计算方位角pab其中lat_a, lng_a是A的纬度和经度lat_b, lng_b是B的纬度和经度。代码如下//计算方位角pab。privatedoublegps2d(doublelat_a,doublelng_a,doublelat_b,doublelng_b) {doubled 0;lat_alat_a*Math.PI/180;lng_alng_a*Math.PI/180;lat_blat_b*Math.PI/180;lng_blng_b*Math.PI/180;dMath.sin(lat_a)*Math.sin(lat_b)Math.cos(lat_a)*Math.cos(lat_b)*Math.cos(lng_b-lng_a);dMath.sqrt(1-d*d);dMath.cos(lat_b)*Math.sin(lng_b-lng_a)/d;dMath.asin(d)*180/Math.PI;//d Math.round(d*10000);returnd;}依然不明白方位角的计算公式和原理求达人指导。