@raruto/leaflet-elevation 2.3.3 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/leaflet-elevation.js +1619 -1566
- package/dist/leaflet-elevation.js.map +1 -1
- package/dist/leaflet-elevation.min.js +1 -1
- package/dist/leaflet-elevation.min.js.map +1 -1
- package/libs/leaflet-gpxgroup.js +346 -340
- package/libs/leaflet-gpxgroup.min.js +1 -1
- package/libs/leaflet-hotline.js +1 -1
- package/package.json +74 -74
- package/src/control.js +1337 -1325
- package/src/handlers/labels.js +45 -0
- package/src/handlers/runner.js +109 -0
- package/src/options.js +88 -88
- package/src/utils.js +203 -163
|
@@ -1 +1 @@
|
|
|
1
|
-
L.Mixin.Selectable={includes:L.Mixin.Events,setSelected:function(s){var selected=!!s;this._selected!==selected&&(this._selected=selected,this.fire("selected"))},isSelected:function(){return!!this._selected}},L.Mixin.Selection={includes:L.Mixin.Events,getSelection:function(){return this._selected},setSelection:function(item){this._selected===item?null!==item&&(item.setSelected(!item.isSelected()),item.isSelected()||(this._selected=null)):(this._selected&&this._selected.setSelected(!1),this._selected=item,this._selected&&this._selected.setSelected(!0)),this.fire("selection_changed")}},L.Control.LayersLegend=L.Control.Layers.extend({_onInputClick:function(){this._handlingClick=!0,this._layerControlInputs.reduceRight((_,input)=>{if(input.checked)return this._map.fireEvent("legend_selected",{layer:this._getLayer(input.layerId).layer,input:input},!0),input},0),this._handlingClick=!1,this._refocusOnMap()}}),L.control.layersLegend=(baseLayers,overlays,options)=>new L.Control.LayersLegend(baseLayers,overlays,options),L.GeoJSON.include(L.Mixin.Selectable),L.GpxGroup=L.Class.extend({options:{highlight:{color:"#ff0",opacity:1},points:[],points_options:{icon:{iconUrl:"../images/elevation-poi.png",iconSize:[12,12]}},flyToBounds:!0,legend:!1,legend_options:{position:"topright",collapsed:!1},elevation:!0,elevation_options:{theme:"yellow-theme",detached:!0,elevationDiv:"#elevation-div"},distanceMarkers:!0,distanceMarkers_options:{lazy:!0}},initialize:function(tracks,options){L.Util.setOptions(this,options),this._count=0,this._loadedCount=0,this._tracks=tracks,this._layers=L.featureGroup(),this._markers=L.featureGroup(),this._elevation=L.control.elevation(this.options.elevation_options),this._legend=L.control.layersLegend(null,null,this.options.legend_options),this.options.points.forEach(poi=>L.marker(poi.latlng,{icon:L.icon(this.options.points_options.icon)}).bindTooltip(poi.name,{direction:"auto"}).addTo(this._markers))},getBounds:function(){return this._layers.getBounds()},addTo:function(map){this._layers.addTo(map),this._markers.addTo(map),this._map=map,this.on("selection_changed",this._onSelectionChanged,this),this._map.on("legend_selected",this._onLegendSelected,this),this._tracks.forEach(this.addTrack,this)},addTrack:function(track){fetch(track).then(response=>response.ok&&response.text()).then(text=>this._elevation._parseFromString(text)).then(geojson=>
|
|
1
|
+
L.Mixin.Selectable={includes:L.Mixin.Events,setSelected:function(s){var selected=!!s;this._selected!==selected&&(this._selected=selected,this.fire("selected"))},isSelected:function(){return!!this._selected}},L.Mixin.Selection={includes:L.Mixin.Events,getSelection:function(){return this._selected},setSelection:function(item){this._selected===item?null!==item&&(item.setSelected(!item.isSelected()),item.isSelected()||(this._selected=null)):(this._selected&&this._selected.setSelected(!1),this._selected=item,this._selected&&this._selected.setSelected(!0)),this.fire("selection_changed")}},L.Control.LayersLegend=L.Control.Layers.extend({_onInputClick:function(){this._handlingClick=!0,this._layerControlInputs.reduceRight((_,input)=>{if(input.checked)return this._map.fireEvent("legend_selected",{layer:this._getLayer(input.layerId).layer,input:input},!0),input},0),this._handlingClick=!1,this._refocusOnMap()}}),L.control.layersLegend=(baseLayers,overlays,options)=>new L.Control.LayersLegend(baseLayers,overlays,options),L.GeoJSON.include(L.Mixin.Selectable),L.GpxGroup=L.Class.extend({options:{highlight:{color:"#ff0",opacity:1},points:[],points_options:{icon:{iconUrl:"../images/elevation-poi.png",iconSize:[12,12]}},flyToBounds:!0,legend:!1,legend_options:{position:"topright",collapsed:!1},elevation:!0,elevation_options:{theme:"yellow-theme",detached:!0,elevationDiv:"#elevation-div"},distanceMarkers:!0,distanceMarkers_options:{lazy:!0}},initialize:function(tracks,options){L.Util.setOptions(this,options),this._count=0,this._loadedCount=0,this._tracks=tracks,this._layers=L.featureGroup(),this._markers=L.featureGroup(),this._elevation=L.control.elevation(this.options.elevation_options),this._legend=L.control.layersLegend(null,null,this.options.legend_options),this.options.points.forEach(poi=>L.marker(poi.latlng,{icon:L.icon(this.options.points_options.icon)}).bindTooltip(poi.name,{direction:"auto"}).addTo(this._markers))},getBounds:function(){return this._layers.getBounds()},addTo:function(map){this._layers.addTo(map),this._markers.addTo(map),this._map=map,this.on("selection_changed",this._onSelectionChanged,this),this._map.on("legend_selected",this._onLegendSelected,this),this._tracks.forEach(this.addTrack,this)},addTrack:function(track){track instanceof Object?this._loadGeoJSON(track):fetch(track).then(response=>response.ok&&response.text()).then(text=>this._elevation._parseFromString(text)).then(geojson=>this._loadGeoJSON(geojson,track.split("/").pop().split("#")[0].split("?")[0]))},_loadGeoJSON:function(geojson,fallbackName){geojson&&(geojson.name=geojson.name||geojson[0]&&geojson[0].properties.name||fallbackName,this._loadRoute(geojson))},_loadRoute:function(data){if(data){var line_style={color:this._uniqueColors(this._tracks.length)[this._count++],opacity:.75,weight:5,distanceMarkers:this.options.distanceMarkers_options},route=L.geoJson(data,{name:data.name||"",style:feature=>line_style,distanceMarkers:line_style.distanceMarkers,originalStyle:line_style,filter:feature=>"Point"!=feature.geometry.type});this._elevation.import(this._elevation.__LGEOMUTIL).then(()=>{route.addTo(this._layers),route.eachLayer(layer=>this._onEachRouteLayer(route,layer)),this._onEachRouteLoaded(route)})}},_onEachRouteLayer:function(route,layer){var polyline=layer;route.on("selected",L.bind(this._onRouteSelected,this,route,polyline)),polyline.on("mouseover",L.bind(this._onRouteMouseOver,this,route,polyline)),polyline.on("mouseout",L.bind(this._onRouteMouseOut,this,route,polyline)),polyline.on("click",L.bind(this._onRouteClick,this,route,polyline)),polyline.bindTooltip(route.options.name,{direction:"auto",sticky:!0})},_onEachRouteLoaded:function(route){this.options.legend&&this._legend.addBaseLayer(route,'<svg id="legend_'+route._leaflet_id+'" width="25" height="10" version="1.1" xmlns="http://www.w3.org/2000/svg"><line x1="0" x2="50" y1="5" y2="5" stroke="'+route.options.originalStyle.color+'" fill="transparent" stroke-width="5" /></svg> '+route.options.name),this.fire("route_loaded",{route:route}),++this._loadedCount===this._tracks.length&&(this.fire("loaded"),this.options.flyToBounds&&this._map.flyToBounds(this.getBounds(),{duration:.25,easeLinearity:.25,noMoveStart:!0}),this.options.legend&&this._legend.addTo(this._map))},highlight:function(route,polyline){polyline.setStyle(this.options.highlight),this.options.distanceMarkers&&polyline.addDistanceMarkers()},unhighlight:function(route,polyline){polyline.setStyle(route.options.originalStyle),this.options.distanceMarkers&&polyline.removeDistanceMarkers()},_onRouteMouseOver:function(route,polyline){route.isSelected()||(this.highlight(route,polyline),this.options.legend&&(this.setSelection(route),L.DomUtil.get("legend_"+route._leaflet_id).parentNode.previousSibling.click())),this.fire("route_mouseover",{route:route,polyline:polyline})},_onRouteMouseOut:function(route,polyline){route.isSelected()||this.unhighlight(route,polyline),this.fire("route_mouseout",{route:route,polyline:polyline})},_onRouteClick:function(route,polyline){this.setSelection(route)},_onRouteSelected:function(route,polyline){route.isSelected()||this.unhighlight(route,polyline)},_onSelectionChanged:function(e){var elevation=this._elevation,eleDiv=elevation.getContainer(),route=this.getSelection();elevation.clear(),route&&route.isSelected()?(eleDiv||elevation.addTo(this._map),route.getLayers().forEach((function(layer){layer instanceof L.Polyline&&(elevation.addData(layer,!1),layer.bringToFront())}))):eleDiv&&elevation.remove()},_onLegendSelected:function(e){var parent=e.input.closest(".leaflet-control-layers-list"),route=e.layer;if(!route.isSelected()){for(var i in this.setSelection(route),route._layers)this.highlight(route,route._layers[i]);this._map.flyToBounds(e.layer.getBounds())}parent.scroll({top:e.input.offsetTop-parent.offsetTop||0,behavior:"smooth"}),this._layers.eachLayer(layer=>{var legend=L.DomUtil.get("legend_"+layer._leaflet_id);legend.querySelector("line").style.stroke=layer.isSelected()?this.options.highlight.color:"",legend.parentNode.style.fontWeight=layer.isSelected()?"700":""})},_uniqueColors:function(count){return 1===count?["#0000ff"]:new Array(count).fill(null).map((_,i)=>this._hsvToHex(i*(1/count),1,.7))},_hsvToHex:function(h,s,v){var i=Math.floor(6*h),f=6*h-i,p=v*(1-s),q=v*(1-f*s),t=v*(1-(1-f)*s),rgb;return{0:[v,t,p],1:[q,v,p],2:[p,v,t],3:[p,q,v],4:[t,p,v],5:[v,p,q]}[i%6].map(d=>255*d).reduce((hex,byte)=>hex+(byte>>4&15).toString(16)+(15&byte).toString(16),"#")},removeFrom:function(map){this._layers.removeFrom(map)}}),L.GpxGroup.include(L.Mixin.Events),L.GpxGroup.include(L.Mixin.Selection),L.gpxGroup=(tracks,options)=>new L.GpxGroup(tracks,options);
|
package/libs/leaflet-hotline.js
CHANGED
package/package.json
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@raruto/leaflet-elevation",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "A Leaflet plugin that allows to add elevation profiles using d3js",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/leaflet-elevation.min.js",
|
|
7
|
-
"browser": "dist/leaflet-elevation.min.js",
|
|
8
|
-
"module": "src/index.js",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"test": "uvu . ^(examples)?(src)?\\.*\\.spec\\.js$",
|
|
11
|
-
"build": "rollup -c build/rollup.config.js",
|
|
12
|
-
"watch": "rollup -c build/rollup.config.js --watch",
|
|
13
|
-
"dev": "npm-run-all --print-label --parallel serve watch",
|
|
14
|
-
"serve": "http-server",
|
|
15
|
-
"version": "npm run build && git add -A"
|
|
16
|
-
},
|
|
17
|
-
"repository": {
|
|
18
|
-
"type": "git",
|
|
19
|
-
"url": "https://github.com/Raruto/leaflet-elevation.git"
|
|
20
|
-
},
|
|
21
|
-
"keywords": [
|
|
22
|
-
"leaflet",
|
|
23
|
-
"d3js",
|
|
24
|
-
"javascript",
|
|
25
|
-
"elevation",
|
|
26
|
-
"highchart",
|
|
27
|
-
"kml",
|
|
28
|
-
"altitude",
|
|
29
|
-
"gpx",
|
|
30
|
-
"gps-visualizer",
|
|
31
|
-
"tcx"
|
|
32
|
-
],
|
|
33
|
-
"author": {
|
|
34
|
-
"name": "Felix “MrMufflon” Bache",
|
|
35
|
-
"url": "https: //github.com/MrMufflon/Leaflet.Elevation"
|
|
36
|
-
},
|
|
37
|
-
"contributors": [
|
|
38
|
-
{
|
|
39
|
-
"name": "Raruto",
|
|
40
|
-
"url": "https://github.com/Raruto/leaflet-elevation"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"name": "Felix Bache",
|
|
44
|
-
"web": "https://github.com/HostedDinner/Leaflet.Elevation"
|
|
45
|
-
}
|
|
46
|
-
],
|
|
47
|
-
"license": "GPL-3.0",
|
|
48
|
-
"bugs": {
|
|
49
|
-
"url": "https://github.com/Raruto/leaflet-elevation/issues"
|
|
50
|
-
},
|
|
51
|
-
"homepage": "https://github.com/Raruto/leaflet-elevation#readme",
|
|
52
|
-
"devDependencies": {
|
|
53
|
-
"@rollup/plugin-commonjs": "^24.1.0",
|
|
54
|
-
"@rollup/plugin-node-resolve": "^15.0.2",
|
|
55
|
-
"@rollup/plugin-terser": "^0.4.1",
|
|
56
|
-
"http-server": "^14.1.1",
|
|
57
|
-
"jsdom": "^21.1.1",
|
|
58
|
-
"leaflet": "^1.7.1",
|
|
59
|
-
"npm-run-all": "^4.1.5",
|
|
60
|
-
"playwright": "^1.32.3",
|
|
61
|
-
"postcss": "^8.4.23",
|
|
62
|
-
"postcss-copy": "^7.1.0",
|
|
63
|
-
"postcss-import": "^15.1.0",
|
|
64
|
-
"rollup": "^3.21.0",
|
|
65
|
-
"rollup-plugin-postcss": "^4.0.2",
|
|
66
|
-
"uvu": "^0.5.6"
|
|
67
|
-
},
|
|
68
|
-
"peerDependencies": {
|
|
69
|
-
"@tmcw/togeojson": "5.6.0",
|
|
70
|
-
"d3": "7.8.4",
|
|
71
|
-
"leaflet": "^1.7.0",
|
|
72
|
-
"leaflet-i18n": "^0.3.1"
|
|
73
|
-
}
|
|
74
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@raruto/leaflet-elevation",
|
|
3
|
+
"version": "2.4.0",
|
|
4
|
+
"description": "A Leaflet plugin that allows to add elevation profiles using d3js",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/leaflet-elevation.min.js",
|
|
7
|
+
"browser": "dist/leaflet-elevation.min.js",
|
|
8
|
+
"module": "src/index.js",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "uvu . ^(examples)?(src)?\\.*\\.spec\\.js$",
|
|
11
|
+
"build": "rollup -c build/rollup.config.js",
|
|
12
|
+
"watch": "rollup -c build/rollup.config.js --watch",
|
|
13
|
+
"dev": "npm-run-all --print-label --parallel serve watch",
|
|
14
|
+
"serve": "http-server",
|
|
15
|
+
"version": "npm run build && git add -A"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "https://github.com/Raruto/leaflet-elevation.git"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"leaflet",
|
|
23
|
+
"d3js",
|
|
24
|
+
"javascript",
|
|
25
|
+
"elevation",
|
|
26
|
+
"highchart",
|
|
27
|
+
"kml",
|
|
28
|
+
"altitude",
|
|
29
|
+
"gpx",
|
|
30
|
+
"gps-visualizer",
|
|
31
|
+
"tcx"
|
|
32
|
+
],
|
|
33
|
+
"author": {
|
|
34
|
+
"name": "Felix “MrMufflon” Bache",
|
|
35
|
+
"url": "https: //github.com/MrMufflon/Leaflet.Elevation"
|
|
36
|
+
},
|
|
37
|
+
"contributors": [
|
|
38
|
+
{
|
|
39
|
+
"name": "Raruto",
|
|
40
|
+
"url": "https://github.com/Raruto/leaflet-elevation"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "Felix Bache",
|
|
44
|
+
"web": "https://github.com/HostedDinner/Leaflet.Elevation"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"license": "GPL-3.0",
|
|
48
|
+
"bugs": {
|
|
49
|
+
"url": "https://github.com/Raruto/leaflet-elevation/issues"
|
|
50
|
+
},
|
|
51
|
+
"homepage": "https://github.com/Raruto/leaflet-elevation#readme",
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@rollup/plugin-commonjs": "^24.1.0",
|
|
54
|
+
"@rollup/plugin-node-resolve": "^15.0.2",
|
|
55
|
+
"@rollup/plugin-terser": "^0.4.1",
|
|
56
|
+
"http-server": "^14.1.1",
|
|
57
|
+
"jsdom": "^21.1.1",
|
|
58
|
+
"leaflet": "^1.7.1",
|
|
59
|
+
"npm-run-all": "^4.1.5",
|
|
60
|
+
"playwright": "^1.32.3",
|
|
61
|
+
"postcss": "^8.4.23",
|
|
62
|
+
"postcss-copy": "^7.1.0",
|
|
63
|
+
"postcss-import": "^15.1.0",
|
|
64
|
+
"rollup": "^3.21.0",
|
|
65
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
66
|
+
"uvu": "^0.5.6"
|
|
67
|
+
},
|
|
68
|
+
"peerDependencies": {
|
|
69
|
+
"@tmcw/togeojson": "5.6.0",
|
|
70
|
+
"d3": "7.8.4",
|
|
71
|
+
"leaflet": "^1.7.0",
|
|
72
|
+
"leaflet-i18n": "^0.3.1"
|
|
73
|
+
}
|
|
74
|
+
}
|