經緯度代碼
❶ C++語言實現經緯度的正弦餘弦函數,請求各位大蝦幫忙看看下面這行代碼那裡有問題
不知道你為什麼除以100,10000的
lfen=(int)((L-l)*100);
lmiao=(L-l-lfen/100)*10000;
關注
❷ 誰知道基站代碼怎樣轉換經緯度急急急!
首先基站代碼與經緯度沒有直接必然的聯系。
要實現轉換,必須得到基站所在的地理坐標和代碼的對應關系。建站一般需要規劃在圖紙上,圖紙上的地圖可與經緯度對照,這樣基站代碼和經緯度就有了間接的聯系。將這些聯系放在資料庫中,只要有權訪問就能轉換了。當然這樣的資源都掌握在運營商手裡,要得到不太容易。
❸ java 有沒辦法獲取自己所在位置的經緯度 求代碼
http://yegshine.blog.163.com/blog/static/118945309201321832512826/
可以看看這個,是要實現地圖服務介面的額,我並沒用過,只是之前看見內過,不知道是不容是你想要的。。。不過可以試一下,學習一下
❹ 經度和緯度各用什麼字母表示
從0°經線算起,向東、向西各分作180°,以東的180°屬於東經,習慣上用「E」作代號,以西的180°屬於西經,習慣上用「W」作代號。
位於赤道以北的點的緯度叫北緯,記為N;位於赤道以南的點的緯度稱南緯,記為S。
(4)經緯度代碼擴展閱讀:
初子午線的經度是0°,地球上其它地點的經度是向東到180°或向西到180°。不像緯度有赤道作為自然的起點,經度沒有自然的起點,做為本初子午線的那條線是人選出來的。英國的制圖學家使用經過倫敦格林尼治天文台的子午線作為起點,過去其它國家或人也使用過其它的子午線做起點,比如羅馬、哥本哈根、耶路撒冷、聖彼德堡、比薩、巴黎和費城等。
在1884年的國際本初子午線大會上格林尼治的子午線被正式定為經度的起點。東經180°即西經180°,約等同於國際換日線,國際換日線的兩邊,日期相差一日。
緯度是指地球表面南北距離的度數,從赤道到南北兩極各分90°,在北的叫北緯,在南的叫南緯。靠近赤道的低緯度,靠近兩極的叫高緯度,二者之間,45°上下,叫中緯度。
通過某地的緯線跟赤道相距若干度,就是這個地點的緯度。緯度數值在0至30度之間的地區稱為低緯地區,緯度數值在30至60度之間的地區稱為中緯地區,緯度數值在60至90度之間的地區稱為高緯地區。赤道、南回歸線、北回歸線、南極圈和北極圈是特殊的緯線。
❺ 利用日期、經緯度求日出日落時間 C語言程序代碼
#definePI3.1415926
#include<math.h>
#include<iostream>
usingnamespacestd;
intdays_of_month_1[]={31,28,31,30,31,30,31,31,30,31,30,31};
intdays_of_month_2[]={31,29,31,30,31,30,31,31,30,31,30,31};
longdoubleh=-0.833;
//定義全局變數
voidinput_date(intc[]){
inti;
cout<<"Enterthedate(form:20090310):"<<endl;
for(i=0;i<3;i++){
cin>>c[i];
}
}
//輸入日期
voidinput_glat(intc[]){
inti;
cout<<"Enterthedegreeoflatitude(range:0°-60°,form:404040(means40°40′40″)):"<<endl;
for(i=0;i<3;i++){
cin>>c[i];
}
}
//輸入緯度
voidinput_glong(intc[]){
inti;
cout<<"Enterthedegreeoflongitude(westisnegativ,form:404040(means40°40′40″)):"<<endl;
for(i=0;i<3;i++){
cin>>c[i];
}
}
//輸入經度
intleap_year(intyear){
if(((year%400==0)||(year%100!=0)&&(year%4==0)))return1;
elsereturn0;
}
//判斷是否為閏年:若為閏年,返回1;若非閏年,返回0
intdays(intyear,intmonth,intdate){
inti,a=0;
for(i=2000;i<year;i++){
if(leap_year(i))a=a+366;
elsea=a+365;
}
if(leap_year(year)){
for(i=0;i<month-1;i++){
a=a+days_of_month_2[i];
}
}
else{
for(i=0;i<month-1;i++){
a=a+days_of_month_1[i];
}
}
a=a+date;
returna;
}
//求從格林威治時間公元2000年1月1日到計算日天數days
longdoublet_century(intdays,longdoubleUTo){
return((longdouble)days+UTo/360)/36525;
}
//求格林威治時間公元2000年1月1日到計算日的世紀數t
longdoubleL_sun(longdoublet_century){
return(280.460+36000.770*t_century);
}
//求太陽的平黃徑
longdoubleG_sun(longdoublet_century){
return(357.528+35999.050*t_century);
}
//求太陽的平近點角
longdoubleecliptic_longitude(longdoubleL_sun,longdoubleG_sun){
return(L_sun+1.915*sin(G_sun*PI/180)+0.02*sin(2*G_sun*PI/180));
}
//求黃道經度
longdoubleearth_tilt(longdoublet_century){
return(23.4393-0.0130*t_century);
}
//求地球傾角
longdoublesun_deviation(longdoubleearth_tilt,longdoubleecliptic_longitude){
return(180/PI*asin(sin(PI/180*earth_tilt)*sin(PI/180*ecliptic_longitude)));
}
//求太陽偏差
longdoubleGHA(longdoubleUTo,longdoubleG_sun,longdoubleecliptic_longitude){
return(UTo-180-1.915*sin(G_sun*PI/180)-0.02*sin(2*G_sun*PI/180)+2.466*sin(2*ecliptic_longitude*PI/180)-0.053*sin(4*ecliptic_longitude*PI/180));
}
//求格林威治時間的太陽時間角GHA
longdoublee(longdoubleh,longdoubleglat,longdoublesun_deviation){
return180/PI*acos((sin(h*PI/180)-sin(glat*PI/180)*sin(sun_deviation*PI/180))/(cos(glat*PI/180)*cos(sun_deviation*PI/180)));
}
//求修正值e
longdoubleUT_rise(longdoubleUTo,longdoubleGHA,longdoubleglong,longdoublee){
return(UTo-(GHA+glong+e));
}
//求日出時間
longdoubleUT_set(longdoubleUTo,longdoubleGHA,longdoubleglong,longdoublee){
return(UTo-(GHA+glong-e));
}
//求日落時間
longdoubleresult_rise(longdoubleUT,longdoubleUTo,longdoubleglong,longdoubleglat,intyear,intmonth,intdate){
longdoubled;
if(UT>=UTo)d=UT-UTo;
elsed=UTo-UT;
if(d>=0.1){
UTo=UT;
UT=UT_rise(UTo,GHA(UTo,G_sun(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))),glong,e(h,glat,sun_deviation(earth_tilt(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo))))));
result_rise(UT,UTo,glong,glat,year,month,date);
}
returnUT;
}
//判斷並返回結果(日出)
longdoubleresult_set(longdoubleUT,longdoubleUTo,longdoubleglong,longdoubleglat,intyear,intmonth,intdate){
longdoubled;
if(UT>=UTo)d=UT-UTo;
elsed=UTo-UT;
if(d>=0.1){
UTo=UT;
UT=UT_set(UTo,GHA(UTo,G_sun(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))),glong,e(h,glat,sun_deviation(earth_tilt(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo))))));
result_set(UT,UTo,glong,glat,year,month,date);
}
returnUT;
}
//判斷並返回結果(日落)
intZone(longdoubleglong){
if(glong>=0)return(int)((int)(glong/15.0)+1);
elsereturn(int)((int)(glong/15.0)-1);
}
//求時區
voidoutput(longdoublerise,longdoubleset,longdoubleglong){
if((int)(60*(rise/15+Zone(glong)-(int)(rise/15+Zone(glong))))<10)
cout<<"Thetimeatwhichthesunrisesis"<<(int)(rise/15+Zone(glong))<<":0"<<(int)(60*(rise/15+Zone(glong)-(int)(rise/15+Zone(glong))))<<". ";
elsecout<<"Thetimeatwhichthesunrisesis"<<(int)(rise/15+Zone(glong))<<":"<<(int)(60*(rise/15+Zone(glong)-(int)(rise/15+Zone(glong))))<<". ";
if((int)(60*(set/15+Zone(glong)-(int)(set/15+Zone(glong))))<10)
cout<<"Thetimeatwhichthesunsetsis"<<(int)(set/15+Zone(glong))<<":"<<(int)(60*(set/15+Zone(glong)-(int)(set/15+Zone(glong))))<<". ";
elsecout<<"Thetimeatwhichthesunsetsis"<<(int)(set/15+Zone(glong))<<":"<<(int)(60*(set/15+Zone(glong)-(int)(set/15+Zone(glong))))<<". ";
}
//列印結果intmain(){
longdoubleUTo=180.0;
intyear,month,date;
longdoubleglat,glong;
intc[3];
input_date(c);
year=c[0];
month=c[1];
date=c[2];
input_glat(c);
glat=c[0]+c[1]/60+c[2]/3600;
input_glong(c);
glong=c[0]+c[1]/60+c[2]/3600;
longdoublerise,set;
rise=result_rise(UT_rise(UTo,GHA(UTo,G_sun(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))),glong,e(h,glat,sun_deviation(earth_tilt(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))))),UTo,glong,glat,year,month,date);
set=result_set(UT_set(UTo,GHA(UTo,G_sun(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))),glong,e(h,glat,sun_deviation(earth_tilt(t_century(days(year,month,date),UTo)),ecliptic_longitude(L_sun(t_century(days(year,month,date),UTo)),G_sun(t_century(days(year,month,date),UTo)))))),UTo,glong,glat,year,month,date);
output(rise,set,glong);
system("pause");
return0;
}
❻ 求JAVA經緯度轉換代碼
由於鍵盤上沒有 ° 鍵,所以我在程序中把它換成 * 鍵了。
運行下面程序,從控制台輸入 40582974 ,回車 ,輸出結果:22*32.7658′
若
輸入:57335948
則
輸出:31*51.1983'
import java.math.BigDecimal;
import java.util.Scanner;
public class LatitudeTransform {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
String in = sca.nextLine();
//將控制台接收到的輸入轉成數字
long num = Long.parseLong(in);
//利用整除舍棄余數得到度數值
long = (num / 30000) / 60;
//將控制台接收到的數值除以30000,得到度和分的混合結果,再對60取余,得到分的部分
BigDecimal fen = new BigDecimal(num).divide(new BigDecimal(30000), 4, BigDecimal.ROUND_HALF_UP).remainder(
new BigDecimal(60));
System.out.println( + "*" + fen + "'");
}
}
下面的部分是,在控制台輸入22°32.7658′ ,回車得到40582974。開始的時候讀你的問題理解反了,所以先寫的這個,也給你吧,要是沒用就算了~呵呵。
import java.util.Scanner;
public class LatitudeTransform {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
String in = sca.nextLine();
String result = transform(in);
System.out.println(result);
}
private static String transform(String in) {
//將輸入的字元串分成兩截,分別為度數_string,分數fen_string
String _string = in.substring(0, in.indexOf("*"));
//substring方法兩個參數遵循規則"前包含後不包含",例,」1234「.substring(0,2)返回的結果是index為0到1的子串,即"12"
String fen_string = in.substring(in.indexOf("*") + 1, in.indexOf("'"));
double = Double.parseDouble(_string);
double fen = Double.parseDouble(fen_string);
Long result = (long) (( * 60 + fen) * 30000);
return result.toString();
}
}
❼ 經緯度計算方法
您好!
方法如下: 1、先算兩分日
比如在 中國 某地,桿影最短時是中午13點20分,且桿長與影長之比為1,則可知該地是北緯45°(tgα=1),東經100°(從120°里1小時減15°,4分鍾減1°)桿長與影長之比需查表求α,這里用了特殊角。
2、再算兩至日經度的演算法不變 緯度在北半球冬至α+23.5°,夏至α-23.5°在任意一天加減修正值即可。
3、修正值演算法:就是距兩分或兩至日的天數差乘以94/365. 比如今天是2月17日,與3月22日春分差33天,即 太陽直射點 在南緯
33×94/365=8.5°
所以今天正午時得到的緯度是(arctgα+8.5)°
tgα= 桿長/影長
經緯度表示及轉換
經緯度以度數表示,一般可直接以小數點表示,但亦可把度數的小數點分為角分(1角分等於六十分之一度),和秒(一秒等於六十分之一分)。表示經緯度有多樣模式,以下是其中一些例子。
度分秒錶示(度:分:秒)-49°30'00"-123d30m00s
度分表示(度:分)-49°30.0'-123d30.0m
度數表示-49.5000°-123.5000d(一般會有四位小數)。
祝節日快樂
❽ 已知三十個地區的經緯度,用matlab怎麼編程求出這三十個地區兩兩之間的距離,會的幫忙編下程序代碼
直接用MATLAB地圖工具箱(Mapping Toolbox)的distance函數就可以了,例如(為方便舉例,這里只設置了4個點,30個點同樣處理):
%已知各點的經緯度(依次為京滬津渝四地)
pts=[...
116.4639.92;
121.4831.22;
117.2039.13;
106.5429.59
];
%形成兩兩之間對應的矩陣(對稱陣,可以只看上三角或下三角)
[LA1,LA2]=meshgrid(pts(:,2));
[LO1,LO2]=meshgrid(pts(:,1));
%計算兩兩之間的距離,單位為公里
R=distance(LA1,LO1,LA2,LO2,almanac('earth','wgs84'));
這里地球模型是採用的WGS84參考橢球,也可以改用其它參考橢球,具體可參考almanac函數。
得到的結果為
>>num2str(R,'%10.2f')
ans=
0.001066.68108.361460.16
1066.680.00959.951445.81
108.36959.950.001440.61
1460.161445.811440.610.00
❾ 求java代碼,手機獲取當前GPS的經緯度。
記得我前幾天發過一個類似的代碼如下(適用安卓)
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.location.*;
importandroid.content.*;
importandroid.util.Log;
importandroid.widget.TextView;
istener{
LocationManagerlocman;
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
locman=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
}
@Override
protectedvoidonResume(){
if(locman!=null){
locman.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,this);
}
super.onResume();
}
@Override
protectedvoidonPause(){
if(locman!=null){
locman.removeUpdates(this);
}
super.onPause();
}
@Override
publicvoidonLocationChanged(Locationlocation){
TextViewtextView1=(TextView)findViewById(R.id.textView1);
textView1.setText("Latitude:Longitude-"
+String.valueOf(location.getLatitude())+":"+String.valueOf(location.getLongitude()));
TextViewtextView2=(TextView)findViewById(R.id.textView2);
textView2.setText(String.valueOf(location.getTime()));
Log.v("----------","----------");
Log.v("Latitude",String.valueOf(location.getLatitude()));
Log.v("Longitude",String.valueOf(location.getLongitude()));
Log.v("Accuracy",String.valueOf(location.getAccuracy()));
Log.v("Altitude",String.valueOf(location.getAltitude()));
Log.v("Time",String.valueOf(location.getTime()));
Log.v("Speed",String.valueOf(location.getSpeed()));
Log.v("Bearing",String.valueOf(location.getBearing()));
}
@Override
publicvoidonProviderDisabled(Stringprovider){
}
@Override
publicvoidonProviderEnabled(Stringprovider){
}
@Override
publicvoidonStatusChanged(Stringprovider,intstatus,Bundleextras){
switch(status){
caseLocationProvider.AVAILABLE:
Log.v("Status","AVAILABLE");
break;
caseLocationProvider.OUT_OF_SERVICE:
Log.v("Status","OUT_OF_SERVICE");
break;
caseLocationProvider.TEMPORARILY_UNAVAILABLE:
Log.v("Status","TEMPORARILY_UNAVAILABLE");
break;
}
}
}
之前的提問鏈接
http://..com/question/426245883846255372