【发布时间】:2022-01-14 01:56:19
【问题描述】:
我正在尝试通过 MesoWest(现为 Synoptic)API 显示阿拉斯加的气象站地图,并在 Leaflet 地图上显示它们的温度和风速。我在网上看到了一些例子,但它们都非常旧并且会导致错误。
这是我的 .js 中的内容:
var map = L.map('map').setView([64.666, -147.101], 8);
var basemap = L.tileLayer.provider('Stamen.Terrain').addTo(map);
var mesoMarkersGroup=new L.LayerGroup();
$.getJSON('https://api.synopticdata.com/v2/stations/latest?&token=[MY TOKEN]&within=1440&obtimezone=utc&output=json&units=temp|f,speed|mph&state=ak&country=us&status=active&vars=air_temp,wind_speed&varsoperator=and', function (data) {
L.geoJson(data).addTo(map);
});
map.addLayer(mesoMarkersGroup);
该链接应返回原始 .JSON 数据。
如果我将其限制在一个站点,以下是链接显示的一些内容的 sn-p:
{"UNITS":{"wind_speed":"Miles\/hour","air_temp":"Fahrenheit"},"QC_SUMMARY":{"QC_CHECKS_APPLIED":["sl_range_check"],"TOTAL_OBSERVATIONS_FLAGGED":0.0,"PERCENT_OF_TOTAL_OBSERVATIONS_FLAGGED":0.0},"STATION":[{"STATUS":"ACTIVE","MNET_ID":"1","PERIOD_OF_RECORD":{"start":"2002-11-05T00:00:00Z","end":"2021-12-09T07:15:00Z"},"ELEVATION":"433","NAME":"Fairbanks, Fairbanks International Airport","DISTANCE":0.0,"STID":"PAFA","SENSOR_VARIABLES":{"wind_speed":{"wind_speed_value_1":{"period_of_record":{"start":"","end":""}}},"air_temp":{"air_temp_value_1":{"period_of_record":{"start":"","end":""}}}},"ELEV_DEM":"419.9","LONGITUDE":"-147.87611","STATE":"AK","OBSERVATIONS":{"wind_speed_value_1":{"date_time":"2021-12-09T07:53:00Z","value":0.0},"air_temp_value_1":{"date_time":"2021-12-09T07:53:00Z","value":10.94}},"RESTRICTED":false,"QC_FLAGGED":false,"LATITUDE":"64.80389","TIMEZONE":"America\/Anchorage","ID":"4620"}],"SUMMARY":{"DATA_QUERY_TIME":"1.08480453491 ms","RESPONSE_CODE":1,"RESPONSE_MESSAGE":"OK","METADATA_RESPONSE_TIME":"152.322053909 ms","DATA_PARSING_TIME":"0.256776809692 ms","TOTAL_DATA_TIME":"1.34587287903 ms","NUMBER_OF_OBJECTS":1}}
我只想要在地图上显示风和温度的点:(
【问题讨论】:
-
如果返回的格式是 json,而不是 geojson,它应该如何为您工作。看这里geojson
-
@Grzegorz T. 好的,这是有道理的。我认为传单会自动执行此操作。它应该能够获取 .json,因为它包含经纬度数据。所以我做了这样的事情,它似乎工作 $.getJSON('LINK', { }, function(data) { for (var i = 0; i
-
文档指定了可以传递给 L.geoJson 的确切格式。将来您可以提供带有重构代码的 codepen.io 或 codesandbox.io 的链接,以便为想要提供帮助的人提供更好的帮助。
-
看到这个api有使用geojson的能力,你只需要阅读文档;)只需设置
output=geojson
标签: javascript leaflet mapping gis weather