- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我从 wunderground api 制作天气 jquery,我的 jquery 工作正常。但问题出在 wunderground api 中的风向度数,我想在罗盘上获取风度数,我在 stackoverflow 中找到了一些问题的答案:
CSS:
#compass {
width: 380px;
height: 380px;
background-image:url('http://i.imgur.com/44nyA.jpg');
position: relative;
}
#arrow {
width: 360px;
height: 20px;
background-color:#F00;
position: absolute;
top: 180px;
left: 10px;
-webkit-transform:rotate(120deg);
-moz-transform:rotate(120deg);
-o-transform:rotate(120deg);
-ms-transform:rotate(120deg);
-moz-transition: all 1s ease;
-webkit-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
}
#compass:hover #arrow {
-webkit-transform:rotate(0deg);
-moz-transform:rotate(0deg);
-o-transform:rotate(0deg);
-ms-transform:rotate(0deg);
}
html
<div id="compass">
<div id="arrow"></div>
</div>
我想在我的 jquery 天气中应用这个 css,但我不知道如何。这个 css 的演示:http://jsfiddle.net/adb2A/
这是我的 jquery :
var x = document.getElementById("demo");
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
function showPosition(position) {
var location = position.coords.latitude + "," + position.coords.longitude;
jQuery(document).ready(function(weather) {
$.ajax({
url : "http://api.wunderground.com/api/eb7a37c339cfd624/geolookup/conditions/forecast10day/lang:AR/q/"+location+".json",
dataType : "jsonp",
success : function(data) {
var html = '<div style="color: black;text-align:right;direction: rtl;">';
html += '<h2>درجة حرارة الان ' + data.current_observation.temp_c + '</h2>'
html += '<h3>شعور بها ' + data.current_observation.feelslike_c + '</h3>'
html += '<h3>الرطوبة ' + data.current_observation.relative_humidity + '</h3>'
html += '<h3>الضغط الجوي ' + data.current_observation.pressure_mb + '</h3>'
html += '<h3>كمية هطول الامطار ' + data.current_observation.precip_today_in + '</h3>'
html += '</div>';
$("#news").append(html).hide().fadeIn("slow");
///10days///
var dayArray = data.forecast.txt_forecast['forecastday'];
var html = '<div id="10days" style="color: black;text-align:right;direction: rtl;">';
for(var i=0; i<dayArray.length; i+=2)
html += '<div class="container center-block"><div class="row "><div class="col-md-8 col-md-offset-2"><h3>'+data.forecast.txt_forecast.forecastday[i]['title']+ " : " +data.forecast.txt_forecast.forecastday[i]['fcttext_metric']+'</h3></div>'
html += '</div></div>';
$("#10").append(html).hide().fadeIn("slow");
}
});
});
}
最佳答案
2021 年更新:示例代码不再运行,因为 Weather Underground (Wunderground) API 在 2018 年被弃用。但是,可以修改代码以使用不同的数据提供程序。
题目问的是如何制作一个千分表来显示风向信息。此代码片段向您展示了如何使用最少的编码创建一个看起来很专业的代码片段。它可以很容易地适应其他应用程序和数据。
OP 最初试图通过冗长而复杂的 CSS 转换列表来实现这一点。然而,一个更简单的解决方案是使用带有缩放背景图像和动态定位指示针的 CANVAS 标签。
最基本的代码如下所示。通过一些额外的样式(如完整代码段所示),您可以获得适合任何应用的具有专业外观的千分表。
尝试演示
要查看演示,请单击“显示代码片段”,然后单击“运行代码片段”(您可能需要向下滚动才能看到)。该演示显示了德国柏林的当前风向。单击“测试”按钮为仪表设置动画。
CSS
#compass {
background: url(YourGaugeBackground.jpg);
background-size: cover;
}
Javascript:
function setCompass(degrees) {
var x, y, r, ctx, radians;
ctx = window.compass.getContext("2d");
radians = 0.0174533 * (degrees - 90);
x = ctx.canvas.width / 2;
y = ctx.canvas.height / 2;
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height );
ctx.beginPath();
ctx.lineWidth = 10;
ctx.moveTo(x, y);
ctx.lineTo(x + r * Math.cos(radians), y + r * Math.sin(radians));
ctx.stroke();
}
HTML
<canvas id="compass" height=200 width=200></canvas>
function setCompass(degrees) {
var x, y, r, ctx, radians;
ctx = window.compass.getContext("2d");
// subtract 90 so that north is up then convert to radians
radians = 0.0174533 * (degrees - 90);
// calc compass centre
x = ctx.canvas.width / 2;
y = ctx.canvas.height / 2;
r = x * 0.8;
// clear
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height );
ctx.beginPath();
// optional styling
ctx.strokeStyle = "rgba(255,0,0,0.5)";
ctx.fillStyle = "rgba(255,0,0,0.5)";
ctx.lineCap = 'round';
ctx.shadowOffsetX = 4;
ctx.shadowOffsetY = 4;
ctx.shadowBlur = 2;
ctx.shadowColor = "rgba(0, 0, 0, 0.5)";
// draw compass needle
ctx.lineWidth = 10;
ctx.moveTo(x, y);
ctx.lineTo(x + r * Math.cos(radians), y + r * Math.sin(radians));
ctx.stroke();
}
// ajax call for city weather data
function getWeatherForecast() {
var url = 'http://api.wunderground.com/api/eb7a37c339cfd624/geolookup/conditions/forecast10day/lang:EN/q/Germany/Berlin.json';
$.getJSON(url, function(data) {
window.debug.innerHTML = JSON.stringify(data, false, ' ');
$('#status').html(
//'<img src="' + data.current_observation.icon_url + '">' +
data.location.city + ', ' +
data.location.country_name + ': ' +
data.current_observation.temperature_string + ', ' +
'Wind ' +
data.current_observation.wind_string + ', ' +
data.current_observation.wind_degrees + '°'
);
setCompass(data.current_observation.wind_degrees);
});
}
$('#test').click(function() {
$(this).attr('disabled', true);
var d=0, id = setInterval(function() {
setCompass( d );
d += 10;
if (d > 360) {
clearInterval(id);
$('#test').attr('disabled',false);
getWeatherForecast();
}
}, 100);
});
$(document).ready(function() {
getWeatherForecast();
});
#compass {
background: url(http://i.imgur.com/44nyA.jpg);
background-size: cover;
}
body {
font-family: sans-serif;
}
#debug {
background-color: aliceblue;
border: 1px solid black;
padding: 0.5em;
width: 90%;
height: 50em;
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="test">Test</button> scroll down to view json data<br>
<canvas id="compass" height=200 width=200></canvas>
<div id="status">Berlin, Germany</div>
json data source: <a href="http://api.wunderground.com" target="_blank">Weather Underground</a><br>
<textarea id="debug" spellcheck=false></textarea>
关于javascript - 指南针 wunderground 上的风向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36236814/
我目前正在编写一个搜索天气的程序。我正在尝试创建一个选项,您可以在其中搜索您的位置,但它似乎不起作用。 from urllib.request import Request, urlopen
所以我设法获得了我的地理位置,并对其进行了测试并且它有效。然后,我将经度和纬度值设置为变量,如下所示 var lat; var long; if (navigator.geolocation) { n
我从 wunderground api 制作天气 jquery,我的 jquery 工作正常。但问题出在 wunderground api 中的风向度数,我想在罗盘上获取风度数,我在 stackove
我是一个快速编程的初学者,我需要来自 JSON 的值,它看起来像这样: { "response": { "version":"0.1", "termsofService":"http://
我正在尝试将 Wunderground 合并到我当前的项目中。我看过几个 api 教程,但我似乎无法弄清楚如何访问 API 的某个部分。例如,这是 API 的样子: { "response":
我已经陷入这个特殊的困境有一段时间了,我浏览了该网站并找到了一些帮助,但不是针对我的特定问题。我正在尝试连接到网站以从中提取 JSON 数据。主机是我不确定的: DefaultHttpClient c
我在 Shane Lynn 上发现了一组非常有用的脚本 Analysis of Weather data 。第一个脚本用于从 Weather Underground 中抓取数据,如下所示: impor
我在我的项目中使用 Wunderground API,我想要使用的 API 部分如下所示: "history": { "dailysummary": [ { "date": {
我当前的项目需要能够显示天气预报,我决定使用 Wunderground。因为使用 API 对我来说是完全未知的领域,所以我有一个由两部分组成的问题。从中检索数据的最佳方法是什么,据我所知有很多,Wun
全部, 我正在尝试从 Wunderground 下载天气数据历史记录。我遇到的问题是我需要完整的 METAR 信息。 这是我要下载的示例:CSV with full METAR . 由于我要下载全年的
我正在查询 Wunderground 服务以获得 10 天的预报,我需要解析数据。使用像 Json2Sharp 这样的类创建者的方法然后访问 RootObject 可行,但不可取。我需要的是一个简单的
我下面有一个异步函数,它可以访问天气 API,我只想从 API 检索两条信息:F 和 C 中的温度。我删除了 API_Key,但可以在网站上免费获取一个,如果必要的。 由于我的 console.log
我想使用模块 WWWW::Wunderground::API 使用 JSON 下载天气数据。 这是我的 PERL 脚本: use WWW::Wunderground::API; my $wun = n
我在使用 JavaScript 和 Ajax 解析“wunderground”API 时遇到问题。我可以获得一些值,有些则不能。这是我使用的 API 的链接: { "forecast":{
我正在尝试使用 devbridge jquery 自动完成库来提取 wunderground.com 的自动完成 API,但我一直被阻止。无论我是否将 cb 附加到 serviceUrl,它都无法解析
我创建了一组函数来从 Wunderground API 检索数据。但是,由于“dailysummary”部分以某种方式包含在数组中,我无法弄清楚如何访问它。这是我无法访问的部分: "history":
我正在尝试使用 java 获取一些天气数据。我正在使用以下 java api 从 wunderground.com 获取数据 https://code.google.com/p/wundergroun
目前我在 Android Studio 中有一张 map 图片,我想知道如何从 wunderground 中提取信息并将其显示在每个位置的 map 顶部。 This是带有一些示例代码的网站。 最佳答案
我在抓取数据方面不是很有经验,所以这里的问题对某些人来说可能是显而易见的。 我想要的是从 wunderground.com 抓取历史每日天气数据,而无需支付 API 费用。也许根本不可能。 我的方法是
我正在尝试从 Wunderground API 获取每小时预报,但我的代码返回此错误。我对某个研究项目的 Wunderground API 中一天中特定时间的湿度预报感兴趣。 let curren
我是一名优秀的程序员,十分优秀!