From 878ba17b4370e07a4660c7a68a816d8b590a3772 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 12 Apr 2019 09:50:55 +0100 Subject: [PATCH] Add weathericons --- CHANGELOG.md | 4 +++- README.md | 14 +++----------- package.json | 2 +- worldmap/index.html | 14 ++++++++++++++ .../css/weather-icons-lite.min.css | 9 +++++++++ .../fonts/weather-icons-lite.woff | Bin 0 -> 16648 bytes .../fonts/weather-icons-lite.woff2 | Bin 0 -> 13536 bytes 7 files changed, 30 insertions(+), 13 deletions(-) create mode 100755 worldmap/leaflet/weather-icons-lite/css/weather-icons-lite.min.css create mode 100755 worldmap/leaflet/weather-icons-lite/fonts/weather-icons-lite.woff create mode 100755 worldmap/leaflet/weather-icons-lite/fonts/weather-icons-lite.woff2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 3438dea..b493851 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ ### Change Log for Node-RED Worldmap - - v1.5.37 - Add .trackpoints to override default in tracks node. Let tracks optionally be on different layers. Fix marker changing layers Issue #85 + - v1.5.39 - Add weather-lite icons + - v1.5.38 - Add Esri dark grey and ocean, re-add hikebike, layers + - v1.5.37 - Add .trackpoints to override default number in tracks node. Let tracks optionally be on different layers. Fix marker changing layers Issue #85 - v1.5.36 - Fix contextmenu $name substitution - v1.5.35 - Add msp.delete command to remove any layers not needed at start (array of names). Issue #83. - v1.5.34 - Add command.contextmenu to set non-marker context menu (defaults to add marker). diff --git a/README.md b/README.md index 4338170..fe95716 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ map web page for plotting "things" on. ### Updates +- v1.5.39 - Add weather-lite icons - v1.5.38 - Add Esri dark grey and ocean, re-add hikebike, layers - v1.5.37 - Add .trackpoints to override default in tracks node. Let tracks optionally be on different layers. Fix marker changing layers Issue #85 - v1.5.36 - Fix contextmenu $name substitution. Issue #84 @@ -18,15 +19,6 @@ map web page for plotting "things" on. - v1.5.32 - Add .contextmenu custom right click menu, Fix map lock, Close websocket on unload - v1.5.31 - Fix pan first at start, and coords overlay. Issues #81 and #82 - v1.5.30 - Add .tooltip option, ability to remove base layer, search on icon, show mouse pointer co-ordinates -- v1.5.29 - Remove lat/lon from popup if using .popup property. Allow icon to be loaded from http. -- v1.5.28 - Tidy up popup location and timing. Auto add countries overlay if no internet. -- v1.5.27 - Add hide right click option to config panel -- v1.5.26 - Ensure all map tiles loaded over https -- v1.5.25 - Add button command to allow user to add and remove buttons -- v1.5.24 - Ensure hiderightclick does do that, and popup always has close button. Issue #69, #70 -- v1.5.23 - Let icon support use of emoji specified as :emoji name: -- v1.5.22 - Slight adjust to label positions for default map marker icon. Add .lineColor for bearing lines -- v1.5.21 - Add .label option to display permanent label. Clean up some excess debug logging - ... see [CHANGELOG](https://github.com/dceejay/RedMap/blob/master/CHANGELOG.md) for full list. @@ -61,7 +53,7 @@ Optional properties include - **bearing** : when combined with speed, draws a vector. - **accuracy** : when combined with bearing, draws a polygon of possible direction. - **lineColor** : CSS color name or #rrggbb value for bearing line or accuracy polygon - - **icon** : font awesome icon name, :emoji name:, or http:// + - **icon** : font awesome icon name, weather-lite icon, :emoji name:, or http:// - **iconColor** : Standard CSS colour name or #rrggbb hex value. - **SIDC** : NATO symbology code (can be used instead of icon). See below. - **building** : OSMbulding GeoJSON feature set to add 2.5D buildings to buildings layer. See below. @@ -83,7 +75,7 @@ by using the **popup** property to supply your own html content. ### Icons You may select any of the Font Awesome set of [icons](https://fontawesome.com/v4.7.0/icons/). -If you use the name without the fa- prefix (eg `male`) you will get the icon inside a generic marker shape. If you use the fa- prefix (eg `fa-male`) you will get the icon on its own. +If you use the name without the fa- prefix (eg `male`) you will get the icon inside a generic marker shape. If you use the fa- prefix (eg `fa-male`) you will get the icon on its own. Likewise you can use any of the [Weather-lite](https://github.com/Paul-Reed/weather-icons-lite) icons by using the wi- prefix. These map to icons returned by common weather API such as DarkSky and OpenWeatherMap - for example `"wi-owm-"+msg.payload.weather[0].icon` will pickup the icon returned from the OpenWeatherMap API. You can also specify an emoji as the icon by using the :emoji name: syntax - for example `:smile:`. Here is a **[list of emojis](https://github.com/dceejay/RedMap/blob/master/emojilist.md)**. diff --git a/package.json b/package.json index fba2339..53261f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-red-contrib-web-worldmap", - "version": "1.5.38", + "version": "1.5.39", "description": "A Node-RED node to provide a web page of a world map for plotting things on.", "dependencies": { "cgi": "0.3.1", diff --git a/worldmap/index.html b/worldmap/index.html index 2324dfe..5441ffd 100644 --- a/worldmap/index.html +++ b/worldmap/index.html @@ -23,6 +23,7 @@ + @@ -1277,6 +1278,19 @@ function setMarker(data) { marker = L.marker(ll, {title:data.name, icon:myMarker, draggable:drag}); labelOffset = [16,-16]; } + else if (data.icon && (data.icon.substr(0,3) === "wi-")) { + var col = data.iconColor || "#910000"; + var imod = ""; + if (data.icon.indexOf(" ") === -1) { imod = "wi-2x "; } + myMarker = L.divIcon({ + className:"wiicon", + html: '
', + iconSize: [32, 32], + popupAnchor: [0, -16] + }); + marker = L.marker(ll, {title:data.name, icon:myMarker, draggable:drag}); + labelOffset = [16,-16]; + } else { myMarker = L.VectorMarkers.icon({ icon: data.icon || "circle", diff --git a/worldmap/leaflet/weather-icons-lite/css/weather-icons-lite.min.css b/worldmap/leaflet/weather-icons-lite/css/weather-icons-lite.min.css new file mode 100755 index 0000000..8d66d3e --- /dev/null +++ b/worldmap/leaflet/weather-icons-lite/css/weather-icons-lite.min.css @@ -0,0 +1,9 @@ +/*! + * Weather Icons Lite + * Weather themed icons for Bootstrap + * Author - Paul Reed + * Maintained at https://github.com/Paul-Reed/weather-icons-lite + * Description - A lighweight version of Weather Icons + * Credit to Erik Flowers - erik@helloerik.com + * + */@font-face{font-family:'weather-icons-lite';font-weight:normal;font-style:normal;src:url('../fonts/weather-icons-lite.woff2') format('woff2'),url('../fonts/weather-icons-lite.woff') format('woff'),url('../fonts/weather-icons-lite.ttf') format('truetype'),url('../fonts/weather-icons-lite.eot') format('embedded-opentype')}.wi{display:inline-block;font-family:'weather-icons-lite';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wi-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.wi-xs{font-size:.75em}.wi-sm{font-size:.875em}.wi-1x{font-size:1em}.wi-2x{font-size:2em}.wi-3x{font-size:3em}.wi-4x{font-size:4em}.wi-5x{font-size:5em}.wi-6x{font-size:6em}.wi-7x{font-size:7em}.wi-8x{font-size:8em}.wi-9x{font-size:9em}.wi-10x{font-size:10em}.wi-fw{text-align:center;width:1.4em}.wi-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.wi-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.wi-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.wi-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.wi-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.wi-darksky-clear-day:before{content:"\f00d"}.wi-darksky-clear-night:before{content:"\f02e"}.wi-darksky-rain:before{content:"\f019"}.wi-darksky-snow:before{content:"\f01b"}.wi-darksky-sleet:before{content:"\f0b5"}.wi-darksky-wind:before{content:"\f050"}.wi-darksky-fog:before{content:"\f014"}.wi-darksky-cloudy:before{content:"\f013"}.wi-darksky-partly-cloudy-day:before{content:"\f002"}.wi-darksky-partly-cloudy-night:before{content:"\f086"}.wi-darksky-hail:before{content:"\f015"}.wi-darksky-thunderstorm:before{content:"\f01e"}.wi-darksky-tornado:before{content:"\f056"}.wi-owm-01d:before{content:"\f00d"}.wi-owm-02d:before{content:"\f00c"}.wi-owm-03d:before{content:"\f002"}.wi-owm-04d:before{content:"\f013"}.wi-owm-09d:before{content:"\f017"}.wi-owm-10d:before{content:"\f019"}.wi-owm-11d:before{content:"\f01e"}.wi-owm-13d:before{content:"\f01b"}.wi-owm-50d:before{content:"\f014"}.wi-owm-01n:before{content:"\f02e"}.wi-owm-02n:before{content:"\f081"}.wi-owm-03n:before{content:"\f07e"}.wi-owm-04n:before{content:"\f086"}.wi-owm-09n:before{content:"\f026"}.wi-owm-10n:before{content:"\f028"}.wi-owm-11n:before{content:"\f02c"}.wi-owm-13n:before{content:"\f02a"}.wi-owm-50n:before{content:"\f04a"}.wi-wu-chanceflurries:before{content:"\f064"}.wi-wu-chancerain:before{content:"\f019"}.wi-wu-chancesleet:before{content:"\f0b5"}.wi-wu-chancesnow:before{content:"\f01b"}.wi-wu-chancetstorms:before{content:"\f01e"}.wi-wu-clear:before{content:"\f00d"}.wi-wu-cloudy:before{content:"\f002"}.wi-wu-flurries:before{content:"\f064"}.wi-wu-fog:before{content:"\f014"}.wi-wu-hazy:before{content:"\f0b6"}.wi-wu-mostlycloudy:before{content:"\f002"}.wi-wu-mostlysunny:before{content:"\f00d"}.wi-wu-partlycloudy:before{content:"\f002"}.wi-wu-partlysunny:before{content:"\f00d"}.wi-wu-rain:before{content:"\f01a"}.wi-wu-sleet:before{content:"\f0b5"}.wi-wu-snow:before{content:"\f01b"}.wi-wu-sunny:before{content:"\f00d"}.wi-wu-tstorms:before{content:"\f01e"}.wi-wu-nt_chanceflurries:before{content:"\f067"}.wi-wu-nt_chancerain:before{content:"\f028"}.wi-wu-nt_chancesleet:before{content:"\f0b4"}.wi-wu-nt_chancesnow:before{content:"\f02a"}.wi-wu-nt_chancetstorms:before{content:"\f02d"}.wi-wu-nt_clear:before{content:"\f02e"}.wi-wu-nt_flurries:before{content:"\f067"}.wi-wu-nt_fog:before{content:"\f04a"}.wi-wu-nt_hazy:before{content:"\f07e"}.wi-wu-nt_mostlycloudy:before{content:"\f081"}.wi-wu-nt_mostlysunny:before{content:"\f02e"}.wi-wu-nt_partlycloudy:before{content:"\f081"}.wi-wu-nt_partlysunny:before{content:"\f086"}.wi-wu-nt_rain:before{content:"\f028"}.wi-wu-nt_sleet:before{content:"\f0b4"}.wi-wu-nt_snow:before{content:"\f02a"}.wi-wu-nt_sunny:before{content:"\f02e"}.wi-wu-nt_tstorms:before{content:"\f02d"}.wi-wu-nt_cloudy:before{content:"\f031"} diff --git a/worldmap/leaflet/weather-icons-lite/fonts/weather-icons-lite.woff b/worldmap/leaflet/weather-icons-lite/fonts/weather-icons-lite.woff new file mode 100755 index 0000000000000000000000000000000000000000..41d59ba2735e503a6889a4e4074ab7ed6c506f03 GIT binary patch literal 16648 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 a$hazst|o$vsUd<+UW@1^L{eJ=0002|Xf7ZC literal 0 HcmV?d00001