首页 > 其他分享 >浅谈日出日落的计算方法以及替代工具 - 日出日落 API

浅谈日出日落的计算方法以及替代工具 - 日出日落 API

时间:2023-04-21 14:24:02浏览次数:53  
标签:浅谈 日出日落 日落 API 时间 日出 计算方法

引言

如果你想知道精确的日落日出时间,又或者你想设计一个日出日落时间查询的应用,又或者你只是好奇点进来了,还是可以过来围观一下涨涨知识,今天想跟大家聊一聊的是日出日落的计算方法以及替代工具 - 日出日落 API 。

日出日落 API 是一种可以获取指定城市或地点每日日出时间和日落时间的接口。该 API 基于全球日出日落计算公式和高精度天文算法,可以为用户提供准确的日出日落时间数据,覆盖全球3400+个城市和4万个地点。

日出日落的计算方法

日出日落时间的计算涉及到地球的自转、公转、地球的形状、大气折射等多个因素,因此需要使用天文学公式和计算方法。以下是一些常用的计算方法:

1.简化公式法:使用经度、纬度、日期等简单参数,通过一些近似公式计算日出日落时间。这种方法比较简单,但是精度不高,只适用于一般的应用。

日出时间 = 12:00 - (时差 + 地方时) - α

日落时间 = 12:00 + (时差 - 地方时) - α

其中,时差表示当地时间和世界时之间的差异;地方时表示当地的时间差异;α表示地球自转一周的时间和24小时的差异,通常取约4分钟。

2.几何平均法:这种方法将地球视为一个球体,将日出日落的计算转化为求解在球体上的两点之间的距离。这种方法的精度比简化公式法高,但是仍然存在一定误差。

cos(ωs) = -tan(φ) * tan(δ) ωs = arccos(cos(ωs)) t = (ωs * 24) / (2π)

其中,ωs表示日出日落时太阳的高度角,φ表示纬度,δ表示太阳的赤纬,t表示日出日落时间。

3.物理光学法:使用光线追踪等方法,考虑大气折射等因素,计算出日出日落时间。这种方法的公式比较复杂,通常需要使用计算机程序进行计算。

在实际应用中,常用的方法是简化公式法和几何平均法,可以通过天文学软件、网站等工具进行计算。例如,可以使用日出日落 API ,输入城市编码参数,就可以得到相应的结果。

日出日落 API 的工作原理

日出日落API的工作原理基于天文学原理和算法。具体来说,日出日落 API 利用太阳、地球和天文时的位置关系,来计算出指定城市或地点的日出和日落时间。以下是该API的具体工作原理:

应用场景

日出日落API可以广泛应用于多个领域,包括天气预报、航海导航、摄影、农业和旅游等。在天气预报方面,日出日落时间是影响天气预报准确性的一个因素。

常用日出日落API 推荐

以下是我推荐的几个日出日落API:

1.APISpace 日出日落 API

简介:APISpace 日出日落 API 支持国内3400+个城市以及国际4万个城市,获取指定城市/地点每日日出时间、日落时间。

接入方式:很简单三个步骤即可完成了,有不明白的小伙伴可以评论区交流~

Java 接入代码:

OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
Request request = new Request.Builder()
  .url("https://eolink.o.apispace.com/ewre/lives_geo/v001/sun?days=1&areacode=101010100")
  .method("GET",null)
  .addHeader("X-APISpace-Token","")
  .addHeader("Authorization-Type","apikey")
  .build();

Response response = client.newCall(request).execute();
System.out.println(response.body().string());

返回示例:

{
    “status”: 0,
    “result”: {
        “location”: {
            “areacode”: “101010100”,        //城市ID
            “name”: “北京”,                //城市中文名
            “country”: “中国”,                //所属国家中文名
            “path”: “北京,北京市,北京市,中国”          //行政区划路径
        },
        “sunrises”: [
            {
                “sunrise”: “06:52”,                //日出时间(当地时间)
                “sunset”: “18:03”,                //日落时间(当地时间)
                “data_time”: “2020-02-27”        //预报日期(当地时间)
            },
                ……                              //其它日期日出日落信息
        ]
    }
}

2.Time and Date Sunrise/Sunset API

提供了详细的日出日落时间数据,包括黄昏、拂晓、日出、日落、黎明等时刻

3.WeatherAPI

提供了日出、日落和日顶的时间数据,以及相关的天文信息和气象数据。

标签:浅谈,日出日落,日落,API,时间,日出,计算方法
From: https://www.cnblogs.com/smartgirlintown/p/17340188.html

相关文章

  • 谷歌宣布开放PaLM API,可在浏览器内操作,终于可以尝试大模型啦
    文|coco酱2022年4月,谷歌发布了一个基于Pathways架构的、拥有5400亿参数的超大语言模型,命名为PaLM,即PathwaysLanguageModel。就在昨天,谷歌突然宣布开放其PaLMAPI服务,让开发者能够使用其最先进的AI语言模型之一:PaLM,赋能所有开发者构建具有生成式AI的下一代应用程序。同时发......
  • 关于浏览器的Selection对象,以及window.getSelection()的API用法
    Selection 对象就是用户选择的文本范围或插入符号的位置。它代表页面中的文本选区,可能横跨多个元素。文本选区由用户拖拽鼠标经过文字而产生。具有以下属性和方法。 1、anchorNode只读属性,返回选区开始位置所属的节点。用户可能从左往右框选,也可能从右往左框选。但是锚点......
  • 如何在 .NET Core WebApi 中处理 MultipartFormDataContent 中的文件
    在上一篇文章(如何在.NETCoreWebApi中处理MultipartFormDataContent)中,我们有描述过如何以最简单的方式在.NETCoreWebApi中处理MultipartFormDataContent。基于框架层面的封装,我们可以快速的从Request.Form中分别拿到文件内容和文本内容,但是这些默认的解析方式都是建......
  • JDBC--API--Connection
       ......
  • JDBC--API--DriverManager(驱动管理类)
       ......
  • Solution Set - APIO2015
    目录A.巴厘岛的雕塑B.雅加达的摩天楼C.巴邻旁之桥A巴厘岛的雕塑\(n\)个数分为若干组,组数不少于\(a\)且不多于\(b\)。最小化各组和的\(OR\)值。\(n\le2000\),\(1=a\leb\len\)或\(n\le100\),\(1\lea\leb\)。key:贪心,DP按位处理,从高到低依次尝试......
  • Encoding API
    1、问题:在node中处理文件有时会遇到中文变乱码2、思路:出现乱码大概率是因为编码的问题,这时要弄清楚编码格式,然后使用解码器解码3、解决弄清楚原文件编码,才发现原来读取文件中的中文编码是GBK编码,本地默认UTF-8编码,编码格式不正确导致的乱码那么就可以使用TextDecoder来......
  • FastAPI.1
    FastAPI.1一、介绍主要特点快速高效编码更少bug智能:编辑器的支持,自动补全功能强大,减少调试时间。简单:易于学习和使用剪短:代码重复最小化,通过不同参数声明实现丰富的功能。简装:生产可用级别的代码,还有自动生成的交互式文档。标准化:基于(并完全兼容)API的相关开放标准:Open......
  • python的flask写后台API
    @app.route("/",methods=["GET"])defindex():return"indexpage" @app.route("/hello")defhello():return"hello"@app.route("/hey/<username>/")defhey_yingong(username):return......
  • Natasha API-预热(三)
    NatashaInitializer.Preheating预热方法首次使用Natasha时都需要进行初始化操作,其中该方法还可以加入一个回调函数作为参数,该回调函数主要作用为减少程序集引用文件的加载,可以有效的控制内存涨幅通过判断Preheating方法中回调函数的第二个参数,可以有选择性的加载哪一类//......