经纬度代码
❶ 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