该项目不再维护。如果你想继续这个项目,只需分叉它并继续。如果您给我留言,也许我会在本自述文件中添加一个指向您的分支的显着链接。
OpenWeatherMap (OWM) 是一项提供天气相关数据的服务,并使用基于 OpenLayers 的地图将其可视化。这是一个独立的基于 Leaflet 的脚本,可轻松访问基于 Leaflet 的地图的 OWM 功能。
简而言之:一个独立的 JavaScript 库,可以轻松地将 OWM 的图层和 OWM 当前的城市数据包含在基于 Leaflet 的地图中。
使用该库的许多功能的示例地图可以在 ahorn.lima-city.de/owm 上看到。其“风玫瑰”叠加层是用户定义标记的示例,可让您了解用户定义的标记函数可以实现哪些目标。该地图也可以在示例目录中找到。
此代码已获得 CC0 许可。示例目录中的某些文件可能有其他许可证(例如 leaflet.js - 请参阅 leaflet.license) - 如果需要,请查看这些文件。
OWM 提供了一些 TileLayers:云、云经典、降水、降水经典、雨、雨经典、雪、温度、风速、压力和压力等值线。
以下是初始化这些 TileLayers 的方法(现在必须提供 AppId,请在此处获取自己的 AppId):
除了 Leaflet TileLayers 的标准选项之外,还有其他选项:
开箱即用的图例图像仅适用于压力、经典降水、经典云、经典雨、雪、温度和风速。如果您需要更多图像,请添加您自己的图像。
使用 OpenWeatherMap API 获取城市的天气数据。它们作为标记的 LayerGroup 添加。该层可以每n分钟刷新一次(使用选项intervall设置n ,但请不要使用少于10分钟)。
以下是初始化这些动态创建的图层的方法:
有很多选项可用于配置城市数据的行为(默认值是粗体)。但不要害怕大量的选项,如果您对默认值感到满意,则无需设置任何选项:
以下是最重要的几行:
< head >
< script type =" text/javascript " src =" leaflet.js " > </ script >
< link rel =" stylesheet " type =" text/css " href =" leaflet-openweathermap.css " />
< script type =" text/javascript " src =" leaflet-openweathermap.js " > </ script >
</ head >
var osm = L . tileLayer ( 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' , {
maxZoom : 18 , attribution : '[insert correct attribution here!]' } ) ;
var clouds = L . OWM . clouds ( { showLegend : false , opacity : 0.5 , appId : 'YOUR_OWN_APPID' } ) ;
var city = L . OWM . current ( { intervall : 15 , lang : 'de' } ) ;
var map = L . map ( 'map' , { center : new L . LatLng ( 51.5 , 10 ) , zoom : 10 , layers : [ osm ] } ) ;
var baseMaps = { "OSM Standard" : osm } ;
var overlayMaps = { "Clouds" : clouds , "Cities" : city } ;
var layerControl = L . control . layers ( baseMaps , overlayMaps ) . addTo ( map ) ;
提供一种用于创建标记的函数,另一种用于创建弹出窗口的函数。将选项markerFunction和popupFunction添加到对L.OWM.current的调用中。作为参数获得的数据结构目前还没有很好的记录。您会收到 OWM 发送的内容。只需查看数据并记住大多数条目都是可选的。函数的上下文 (this) 是您创建的 L.OWM.Current 实例。因此,您可以访问选项(例如 this.options.TemperatureUnit)和其他属性。
< head >
< script type =" text/javascript " src =" leaflet.js " > </ script >
< link rel =" stylesheet " type =" text/css " href =" leaflet-openweathermap.css " />
< script type =" text/javascript " src =" leaflet-openweathermap.js " > </ script >
</ head >
function myOwmMarker ( data ) {
// just a Leaflet default marker
return L . marker ( [ data . coord . lat , data . coord . lon ] ) ;
}
function myOwmPopup ( data ) {
// just a Leaflet default popup with name as content
return L . popup ( ) . setContent ( data . name ) ;
}
var osm = L . tileLayer ( 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' , {
maxZoom : 18 , attribution : '[insert correct attribution here!]' } ) ;
var clouds = L . OWM . clouds ( { showLegend : false , opacity : 0.5 , appId : 'YOUR_OWN_APPID' } ) ;
var city = L . OWM . current ( { intervall : 15 , lang : 'de' ,
markerFunction : myOwmMarker , popupFunction : myOwmPopup } ) ;
var map = L . map ( 'map' , { center : new L . LatLng ( 51.5 , 10 ) , zoom : 10 , layers : [ osm ] } ) ;
var baseMaps = { "OSM Standard" : osm } ;
var overlayMaps = { "Clouds" : clouds , "Cities" : city } ;
var layerControl = L . control . layers ( baseMaps , overlayMaps ) . addTo ( map ) ;
L.OWM.Utils.i18n[lang]
。