gpt4 book ai didi

javascript - 根据今天的经纬度生成日出和日落时间

转载 作者:行者123 更新时间:2023-11-30 18:45:15 30 4
gpt4 key购买 nike

每个人。我正在做一个只使用 JavaScript 的项目(客户端,而不是服务器端),我想使用我在另一个线程中找到的来自 NOAA 的脚本(我不能列出多个链接作为不过是新用户),我发现了这个:

http://www.srrb.noaa.gov/highlights/sunrise/sunrise.html

我想做的是,当用户输入纬度和经度并单击“提交”时,它将获取今天的日出/日落数据并将它们存储在两个变量中(例如日出和日落)。

不过,我真的希望他们可以将所有脚本(嵌入组合框中的脚本除外)放在一个单独的 JavaScript 文件中,这样我就可以将来自 NOAA 网站的 JavaScript 代码源提供到我的项目中一直在努力。

                <div id="locationSetupDiv">
<fieldset>
<legend>Location</legend>
<p>
<a href="javascript:var load = window.open('http://www.esrl.noaa.gov/gmd/grad/solcalc/')">
Get your longitude and latitude from here.</a>
</p>
<table class="inputData">
<tr>
<th style="width: 75px;">
<label id="labelLongitude" for="inputModuleIDNumber">
Longitude:</label></th>
<td><input id="inputLongitude" /></td>
</tr>
<tr>
<th><label id="labelLatitude" for="inputModuleName">
Latitude:</label></th>
<td><input id="inputLatitude" /></td>
</tr>
</table>
<input type="button" value="Submit Changes"
style="float: right; margin-top: 1em;" />
</fieldset>
</div>

以上代码是 HTML 格式的。现在,这是我的 JavaScript 代码:

function PopulateFromXML()
{
listModules = document.getElementById(
"listModules").getElementsByTagName("tbody");

// Gather the text fields for location data.
inputLongitude = document.getElementById("inputLongitude")
inputLatitude = document.getElementById("inputLatitude")

// Firefox's DOM Parser treats whitespaces as text nodes, including
// line breaks.
removeWhitespace(xmlDoc.documentElement);

// Send the document's root element to the XML Object variable.
xmlObj = xmlDoc.documentElement;

// Perform the checks and populate the tables
// and any other elements that are needed.
if (xmlObj.tagName == "HomeAutomationInterface")
{
// Check to be sure the first node is the "Setup" node. It contains the
// location node.
if ((xmlObj.childNodes[0].tagName == "Setup") &&
(xmlObj.childNodes[0].childNodes[0].tagName == "Location"))
{
// Copy the data from one of the attributes to the respective text boxes.
inputLongitude.value = xmlObj.childNodes[0]
.childNodes[0].getAttribute("longitude");
inputLatitude.value = xmlObj.childNodes[0]
.childNodes[0].getAttribute("latitude");
}
// The second node within the root element is Modules node.
// This will be implemented.
if (xmlObj.childNodes[1].tagName == "Modules")
{
ListModulesInTabularData();
}
// The third node within the root element is Scenes node.
// You need modules in order for scenes to work.
// This will be implemented.
if (xmlObj.childNodes[2].tagName == "Scenes")
{
ListScenesInTabularData();
}
// The last element is the Timers node.
// This will either activate the scene or turn on, off,
// dim, brighten, or set the light level of the module if
// it is the light module or turn on or off the appliance
// module. This will be implemented.
if (xmlObj.childNodes[3].tagName == "Timers")
{
ListTimersInTabularData();
}
}
}

如您所见,字段集中的两个文本框是在从 XML 文件填充时写入的。虽然我正在做一个项目作为概念验证,但我找不到将所有数据保存到 XML 文件的方法,所以我的老师告诉我不要担心这个。但是自从我编写了代码以表格格式动态填充所有 XML 数据后,我一直在 Internet 上寻找特定的 JavaScript 代码或者我可以从我的项目链接到的 JavaScript 文件,但是使用我为我的个人项目从 NOAA 借来的 JavaScript 代码,有谁知道我如何根据纬度、经度和今天的日期获取日出/日落时间?

更新

看起来我在 Internet 上找到了一些东西(我用 Google 搜索了:sunrise sunset web service):

http://www.earthtools.org/webservices.htm

我使用关键字“sunrise sunset JavaScript”(不带引号)进行了搜索,搜索花了我一段时间,但随后将“JavaScript”替换为“web service”,我能够找到我正在寻找的网站对于,但是当涉及到 IE8/9 中的“同源策略”时,我真的不认为这会与 XMLHttpRequest 一起工作,该策略旨在防止跨站点脚本。

最佳答案

我已经为日出和日落创建了一个 javascript 计算器并将其放在 github 上 here .它基于国家可再生能源实验室发布的计算。我已尽力使其相当易于使用,但欢迎您提交改进。

关于javascript - 根据今天的经纬度生成日出和日落时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5656644/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com