forked from MapComplete/MapComplete
		
	Merge branch 'project/natuurpunt' of https://github.com/pietervdvn/MapComplete into project/natuurpunt
This commit is contained in:
		
						commit
						332081c0db
					
				
					 5 changed files with 471 additions and 14303 deletions
				
			
		|  | @ -41,6 +41,8 @@ import FeatureSource from "./Logic/FeatureSource/FeatureSource"; | ||||||
| import AllKnownLayers from "./Customizations/AllKnownLayers"; | import AllKnownLayers from "./Customizations/AllKnownLayers"; | ||||||
| import LayerConfig from "./Customizations/JSON/LayerConfig"; | import LayerConfig from "./Customizations/JSON/LayerConfig"; | ||||||
| import AvailableBaseLayers from "./Logic/Actors/AvailableBaseLayers"; | import AvailableBaseLayers from "./Logic/Actors/AvailableBaseLayers"; | ||||||
|  | import { SimpleMapScreenshoter } from "leaflet-simple-map-screenshoter"; | ||||||
|  | import jsPDF from "jspdf"; | ||||||
| import FilterView from "./UI/BigComponents/FilterView"; | import FilterView from "./UI/BigComponents/FilterView"; | ||||||
| 
 | 
 | ||||||
| export class InitUiElements { | export class InitUiElements { | ||||||
|  | @ -219,8 +221,34 @@ export class InitUiElements { | ||||||
|       State.state.locationControl.ping(); |       State.state.locationControl.ping(); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|  |      | ||||||
|  |     // To download pdf of leaflet you need to turn it into and image first
 | ||||||
|  |     // Then export that image as a pdf
 | ||||||
|  |     // leaflet-simple-map-screenshoter: to make image
 | ||||||
|  |     // jsPDF:                           to make pdf
 | ||||||
|  | 
 | ||||||
|  |     const screenshot = new MapControlButton( | ||||||
|  |       new CenterFlexedElement( | ||||||
|  |         Img.AsImageElement(Svg.bug, "", "width:1.25rem;height:1.25rem") | ||||||
|  |       ) | ||||||
|  |     ).onClick(() => { | ||||||
|  |       const screenshotter = new SimpleMapScreenshoter(); | ||||||
|  |       console.log("Debug - Screenshot"); | ||||||
|  |       screenshotter.addTo(State.state.leafletMap.data); | ||||||
|  |       let doc = new jsPDF(); | ||||||
|  |       screenshotter.takeScreen('image').then(image => {  | ||||||
|  |         // TO DO: scale image on pdf to its original size
 | ||||||
|  |         doc.addImage(image, 'PNG', 0, 0, screen.width/10, screen.height/10); | ||||||
|  |         doc.setDisplayMode('fullheight'); | ||||||
|  |         doc.save("Screenshot"); | ||||||
|  |       }); | ||||||
|  |       //screenshotter.remove();
 | ||||||
|  |       // The line below is for downloading the png
 | ||||||
|  |       //screenshotter.takeScreen().then(blob => Utils.offerContentsAsDownloadableFile(blob, "Screenshot.png"));
 | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|     new Combine( |     new Combine( | ||||||
|       [plus, min, geolocationButton].map((el) => el.SetClass("m-0.5 md:m-1")) |       [plus, min, geolocationButton, screenshot].map((el) => el.SetClass("m-0.5 md:m-1")) | ||||||
|     ) |     ) | ||||||
|       .SetClass("flex flex-col") |       .SetClass("flex flex-col") | ||||||
|       .AttachTo("bottom-right"); |       .AttachTo("bottom-right"); | ||||||
|  |  | ||||||
							
								
								
									
										7
									
								
								Utils.ts
									
										
									
									
									
								
							
							
						
						
									
										7
									
								
								Utils.ts
									
										
									
									
									
								
							|  | @ -358,9 +358,12 @@ export class Utils { | ||||||
|      * @param contents |      * @param contents | ||||||
|      * @param fileName |      * @param fileName | ||||||
|      */ |      */ | ||||||
|     public static offerContentsAsDownloadableFile(contents: string, fileName: string = "download.txt") { |     public static offerContentsAsDownloadableFile(contents: string | Blob, fileName: string = "download.txt") { | ||||||
|         const element = document.createElement("a"); |         const element = document.createElement("a"); | ||||||
|         const file = new Blob([contents], {type: 'text/plain'}); |         let file; | ||||||
|  |         if(typeof(contents) === "string"){ | ||||||
|  |             file = new Blob([contents], {type: 'text/plain'}); | ||||||
|  |         }else {file = contents;} | ||||||
|         element.href = URL.createObjectURL(file); |         element.href = URL.createObjectURL(file); | ||||||
|         element.download = fileName; |         element.download = fileName; | ||||||
|         document.body.appendChild(element); // Required for this to work in FireFox
 |         document.body.appendChild(element); // Required for this to work in FireFox
 | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								assets/svg/download.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								assets/svg/download.svg
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | ||||||
|  | <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> | ||||||
|  | <path d="M8.08 8.86C8.13 8.53 8.24 8.24 8.38 7.99C8.52 7.74 8.72 7.53 8.97 7.37C9.21 7.22 9.51 7.15 9.88 7.14C10.11 7.15 10.32 7.19 10.51 7.27C10.71 7.36 10.89 7.48 11.03 7.63C11.17 7.78 11.28 7.96 11.37 8.16C11.46 8.36 11.5 8.58 11.51 8.8H13.3C13.28 8.33 13.19 7.9 13.02 7.51C12.85 7.12 12.62 6.78 12.32 6.5C12.02 6.22 11.66 6 11.24 5.84C10.82 5.68 10.36 5.61 9.85 5.61C9.2 5.61 8.63 5.72 8.15 5.95C7.67 6.18 7.27 6.48 6.95 6.87C6.63 7.26 6.39 7.71 6.24 8.23C6.09 8.75 6 9.29 6 9.87V10.14C6 10.72 6.08 11.26 6.23 11.78C6.38 12.3 6.62 12.75 6.94 13.13C7.26 13.51 7.66 13.82 8.14 14.04C8.62 14.26 9.19 14.38 9.84 14.38C10.31 14.38 10.75 14.3 11.16 14.15C11.57 14 11.93 13.79 12.24 13.52C12.55 13.25 12.8 12.94 12.98 12.58C13.16 12.22 13.27 11.84 13.28 11.43H11.49C11.48 11.64 11.43 11.83 11.34 12.01C11.25 12.19 11.13 12.34 10.98 12.47C10.83 12.6 10.66 12.7 10.46 12.77C10.27 12.84 10.07 12.86 9.86 12.87C9.5 12.86 9.2 12.79 8.97 12.64C8.72 12.48 8.52 12.27 8.38 12.02C8.24 11.77 8.13 11.47 8.08 11.14C8.03 10.81 8 10.47 8 10.14V9.87C8 9.52 8.03 9.19 8.08 8.86V8.86ZM10 0C4.48 0 0 4.48 0 10C0 15.52 4.48 20 10 20C15.52 20 20 15.52 20 10C20 4.48 15.52 0 10 0ZM10 18C5.59 18 2 14.41 2 10C2 5.59 5.59 2 10 2C14.41 2 18 5.59 18 10C18 14.41 14.41 18 10 18Z" fill="white"/> | ||||||
|  | </svg> | ||||||
| After Width: | Height: | Size: 1.3 KiB | 
							
								
								
									
										14730
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										14730
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -65,9 +65,11 @@ | ||||||
|     "escape-html": "^1.0.3", |     "escape-html": "^1.0.3", | ||||||
|     "i18next-client": "^1.11.4", |     "i18next-client": "^1.11.4", | ||||||
|     "jquery": "^3.6.0", |     "jquery": "^3.6.0", | ||||||
|  |     "jspdf": "^2.3.1", | ||||||
|     "latlon2country": "^1.1.3", |     "latlon2country": "^1.1.3", | ||||||
|     "leaflet": "^1.7.1", |     "leaflet": "^1.7.1", | ||||||
|     "leaflet-providers": "^1.10.2", |     "leaflet-providers": "^1.10.2", | ||||||
|  |     "leaflet-simple-map-screenshoter": "^0.4.4", | ||||||
|     "leaflet.markercluster": "^1.4.1", |     "leaflet.markercluster": "^1.4.1", | ||||||
|     "libphonenumber": "0.0.10", |     "libphonenumber": "0.0.10", | ||||||
|     "libphonenumber-js": "^1.7.55", |     "libphonenumber-js": "^1.7.55", | ||||||
|  | @ -81,7 +83,6 @@ | ||||||
|     "postcss": "^7.0.36", |     "postcss": "^7.0.36", | ||||||
|     "prompt-sync": "^4.2.0", |     "prompt-sync": "^4.2.0", | ||||||
|     "sharp": "^0.27.0", |     "sharp": "^0.27.0", | ||||||
|     "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.0.2", |  | ||||||
|     "tslint": "^6.1.3" |     "tslint": "^6.1.3" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|  | @ -91,6 +92,7 @@ | ||||||
|     "fs": "0.0.1-security", |     "fs": "0.0.1-security", | ||||||
|     "marked": "^2.0.0", |     "marked": "^2.0.0", | ||||||
|     "read-file": "^0.2.0", |     "read-file": "^0.2.0", | ||||||
|  |     "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.4", | ||||||
|     "ts-node": "^9.0.0", |     "ts-node": "^9.0.0", | ||||||
|     "ts-node-dev": "^1.0.0-pre.63", |     "ts-node-dev": "^1.0.0-pre.63", | ||||||
|     "tslint-no-circular-imports": "^0.7.0", |     "tslint-no-circular-imports": "^0.7.0", | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue