forked from MapComplete/MapComplete
		
	Feat: more integrations of panoramax: add panoramax to nearby images view, add to drawer, add icon, see #1451
This commit is contained in:
		
							parent
							
								
									d079f8379b
								
							
						
					
					
						commit
						5fd1d75efb
					
				
					 24 changed files with 617 additions and 33 deletions
				
			
		|  | @ -877,6 +877,26 @@ | ||||||
|       "https://www.OpenStreetMap.org" |       "https://www.OpenStreetMap.org" | ||||||
|     ] |     ] | ||||||
|   }, |   }, | ||||||
|  |   { | ||||||
|  |     "path": "panoramax.svg", | ||||||
|  |     "license": "LOGO", | ||||||
|  |     "authors": [ | ||||||
|  |       "Panoramax" | ||||||
|  |     ], | ||||||
|  |     "sources": [ | ||||||
|  |       "https://commons.wikimedia.org/wiki/File:Panoramax.svg" | ||||||
|  |     ] | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     "path": "panoramax_bw.svg", | ||||||
|  |     "license": "LOGO", | ||||||
|  |     "authors": [ | ||||||
|  |       "Panoramax" | ||||||
|  |     ], | ||||||
|  |     "sources": [ | ||||||
|  |       "https://commons.wikimedia.org/wiki/File:Panoramax.svg" | ||||||
|  |     ] | ||||||
|  |   }, | ||||||
|   { |   { | ||||||
|     "path": "party.svg", |     "path": "party.svg", | ||||||
|     "license": "CC-BY-4.0", |     "license": "CC-BY-4.0", | ||||||
|  |  | ||||||
							
								
								
									
										187
									
								
								assets/svg/panoramax.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										187
									
								
								assets/svg/panoramax.svg
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,187 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||||
|  | <!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --> | ||||||
|  | 
 | ||||||
|  | <svg | ||||||
|  |    version="1.1" | ||||||
|  |    id="Calque_1" | ||||||
|  |    x="0px" | ||||||
|  |    y="0px" | ||||||
|  |    width="343.25757mm" | ||||||
|  |    height="343.25757mm" | ||||||
|  |    viewBox="0 0 1297.3515 1297.3513" | ||||||
|  |    xml:space="preserve" | ||||||
|  |    xmlns="http://www.w3.org/2000/svg" | ||||||
|  |    xmlns:svg="http://www.w3.org/2000/svg" | ||||||
|  |    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||||
|  |    xmlns:cc="http://creativecommons.org/ns#" | ||||||
|  |    xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata | ||||||
|  |    id="metadata118"><rdf:RDF><cc:Work | ||||||
|  |        rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type | ||||||
|  |          rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs | ||||||
|  |    id="defs72"><rect | ||||||
|  |      x="1150.3843" | ||||||
|  |      y="2292.8162" | ||||||
|  |      width="2107.8879" | ||||||
|  |      height="701.88715" | ||||||
|  |      id="rect141823" /><rect | ||||||
|  |      x="411.88269" | ||||||
|  |      y="1261.6108" | ||||||
|  |      width="815.34668" | ||||||
|  |      height="181.92911" | ||||||
|  |      id="rect66775" /><rect | ||||||
|  |      x="253.02008" | ||||||
|  |      y="1213.0352" | ||||||
|  |      width="2209.7197" | ||||||
|  |      height="583.65765" | ||||||
|  |      id="rect60279" /><rect | ||||||
|  |      x="1150.3843" | ||||||
|  |      y="2292.8162" | ||||||
|  |      width="2551.0081" | ||||||
|  |      height="701.39136" | ||||||
|  |      id="rect141823-1" /><linearGradient | ||||||
|  |      y2="62.288601" | ||||||
|  |      x2="248.6918" | ||||||
|  |      y1="231.7114" | ||||||
|  |      x1="346.50821" | ||||||
|  |      gradientUnits="userSpaceOnUse" | ||||||
|  |      id="SVGID_1_" | ||||||
|  |      gradientTransform="matrix(6.6326761,0,0,6.6326761,-1221.4079,-713.64667)">
		<stop | ||||||
|  |    id="stop4" | ||||||
|  |    style="stop-color:#8F2A85" | ||||||
|  |    offset="0" />
		<stop | ||||||
|  |    id="stop6" | ||||||
|  |    style="stop-color:#2570B6" | ||||||
|  |    offset="1" />
	</linearGradient></defs>
<style | ||||||
|  |    type="text/css" | ||||||
|  |    id="style2">
	.st0{fill:url(#SVGID_1_);}
	.st1{fill:#FFFFFF;}
	.st2{display:none;fill:none;stroke:#E62054;stroke-width:7.5;stroke-miterlimit:10;}
</style>

<text | ||||||
|  |    y="-2248.8188" | ||||||
|  |    style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect60279);display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||||
|  |    id="text60277" | ||||||
|  |    xml:space="preserve" | ||||||
|  |    transform="matrix(0.99999889,0,0,0.99999889,-164.71991,-165.18467)" /><text | ||||||
|  |    y="-4324.1934" | ||||||
|  |    x="304.06815" | ||||||
|  |    style="font-style:normal;font-weight:normal;font-size:89.8058px;line-height:200%;font-family:Sans;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect66775);display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.24515px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||||
|  |    id="text66773" | ||||||
|  |    xml:space="preserve" | ||||||
|  |    transform="matrix(0.99999889,0,0,0.99999889,-164.71991,-165.18467)" /><text | ||||||
|  |    y="-2248.5173" | ||||||
|  |    x="-121.66869" | ||||||
|  |    style="font-style:normal;font-weight:normal;font-size:40px;line-height:0;font-family:Sans;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect141823);display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||||
|  |    id="text141821" | ||||||
|  |    xml:space="preserve" | ||||||
|  |    transform="matrix(0.99999889,0,0,0.99999889,-164.71991,-165.18467)" /><text | ||||||
|  |    y="-3181.1731" | ||||||
|  |    x="-158.83984" | ||||||
|  |    style="font-style:normal;font-weight:normal;font-size:40px;line-height:0;font-family:Sans;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect141823-1);display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||||
|  |    id="text141821-0" | ||||||
|  |    xml:space="preserve" | ||||||
|  |    transform="matrix(0.99999889,0,0,0.99999889,-164.71991,-165.18467)" /><path | ||||||
|  |    style="display:none;fill:none;stroke:#e62054;stroke-width:49.7451;stroke-miterlimit:10" | ||||||
|  |    id="path49" | ||||||
|  |    d="m 1065.871,503.42011 c -19.2347,0 -35.1531,-15.91842 -35.1531,-35.15318 V 334.28687 H 870.87032 c -19.23476,0 -35.15319,-15.91842 -35.15319,-35.15318 0,-19.23476 15.91843,-35.15319 35.15319,-35.15319 H 1065.871 c 19.2348,0 35.1532,15.91843 35.1532,35.15319 v 169.13324 c 0.6633,19.23476 -15.2551,35.15318 -35.1532,35.15318 z" | ||||||
|  |    class="st2" /><path | ||||||
|  |    style="display:none;fill:none;stroke:#e62054;stroke-width:49.7451;stroke-miterlimit:10" | ||||||
|  |    id="path53" | ||||||
|  |    d="M 426.48102,1032.7077 H 231.48034 c -19.23476,0 -35.15318,-15.9185 -35.15318,-35.15322 V 828.42124 c 0,-19.23476 15.91842,-35.15318 35.15318,-35.15318 19.23476,0 35.15318,15.91842 35.15318,35.15318 v 133.31679 h 159.8475 c 19.23476,0 35.15318,15.91842 35.15318,35.15318 0,19.23479 -15.25515,35.81649 -35.15318,35.81649 z" | ||||||
|  |    class="st2" /><path | ||||||
|  |    style="display:none;fill:none;stroke:#e62054;stroke-width:49.7451;stroke-miterlimit:10" | ||||||
|  |    id="path57" | ||||||
|  |    d="m 231.48034,503.42011 c -19.23476,0 -35.15318,-15.91842 -35.15318,-35.15318 V 299.13369 c 0,-19.23476 15.91842,-35.15319 35.15318,-35.15319 h 195.00068 c 19.23476,0 35.15318,15.91843 35.15318,35.15319 0,19.23476 -15.91842,35.15318 -35.15318,35.15318 h -159.8475 v 133.31679 c 0.66327,19.89803 -15.25515,35.81645 -35.15318,35.81645 z" | ||||||
|  |    class="st2" /><path | ||||||
|  |    style="display:none;fill:none;stroke:#e62054;stroke-width:49.7451;stroke-miterlimit:10" | ||||||
|  |    id="path61" | ||||||
|  |    d="M 1065.871,1032.7077 H 870.87032 c -19.23476,0 -35.15319,-15.9185 -35.15319,-35.15322 0,-19.23476 15.91843,-35.15318 35.15319,-35.15318 H 1030.7179 V 829.08451 c 0,-19.23476 15.9184,-35.15319 35.1531,-35.15319 19.2348,0 35.1532,15.91843 35.1532,35.15319 v 169.13324 c 0.6633,18.57145 -15.2551,34.48995 -35.1532,34.48995 z" | ||||||
|  |    class="st2" /><g | ||||||
|  |    id="g1" | ||||||
|  |    transform="translate(-103.80084,387.319)"><circle | ||||||
|  |      style="fill:url(#SVGID_1_);stroke-width:6.63268" | ||||||
|  |      id="circle9" | ||||||
|  |      r="648.67572" | ||||||
|  |      cy="261.35672" | ||||||
|  |      cx="752.47656" | ||||||
|  |      class="st0" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path11" | ||||||
|  |      d="m 465.28163,199.67283 c -0.66327,0 -1.32653,0 -1.9898,0 l -36.47972,-10.61228 c -2.65307,-0.66327 -4.64287,-3.31634 -4.64287,-6.63268 v -49.0818 c 0,-1.9898 1.32653,-3.97961 2.65307,-5.30614 1.9898,-1.32654 3.9796,-1.32654 5.96941,-0.66327 l 36.47972,13.26535 c 2.65307,0.66327 4.64287,3.31634 4.64287,5.96941 v 46.42873 c 0,1.98981 -0.66327,3.97961 -2.65307,5.30614 -1.32654,0.66327 -2.65307,1.32654 -3.97961,1.32654 z m -29.84704,-22.5511 23.21437,6.63268 v -33.16338 l -23.21437,-8.62248 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path13" | ||||||
|  |      d="m 465.28163,292.53029 c -0.66327,0 -0.66327,0 -1.32653,0 l -36.47972,-7.95921 c -3.31634,-0.66326 -5.30614,-3.31633 -5.30614,-6.63267 V 228.8566 c 0,-1.9898 0.66327,-3.9796 2.65307,-5.30614 1.32653,-1.32653 3.9796,-1.9898 5.96941,-1.32653 l 36.47972,9.28574 c 2.65307,0.66327 5.30614,3.31634 5.30614,6.63268 v 47.75527 c 0,1.9898 -0.66327,3.9796 -2.65307,5.30614 -1.98981,0.66327 -3.31634,1.32653 -4.64288,1.32653 z m -29.84704,-19.89802 23.21437,5.30614 v -34.48992 l -23.21437,-5.96941 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path15" | ||||||
|  |      d="m 525.63898,306.45891 c -0.66326,0 -1.32653,0 -1.32653,0 l -36.47972,-8.62247 c -3.31634,-0.66327 -5.30614,-3.31634 -5.30614,-6.63268 v -48.41854 c 0,-1.9898 0.66327,-3.9796 2.65307,-5.30614 1.9898,-1.32653 3.97961,-1.9898 5.96941,-1.32653 l 36.47972,9.28574 c 2.65307,0.66327 5.30614,3.31634 5.30614,6.63268 v 47.75527 c 0,1.9898 -0.66327,3.9796 -2.65307,5.30614 -1.9898,0.66327 -3.31634,1.32653 -4.64288,1.32653 z m -29.84704,-20.56129 23.21437,5.30614 v -34.48992 l -23.21437,-5.96941 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path17" | ||||||
|  |      d="m 609.87397,285.23435 c -0.66327,0 -1.32653,0 -1.9898,0 l -43.1124,-14.59189 c -2.65307,-0.66326 -3.9796,-3.31633 -3.9796,-5.30614 v -30.51031 c 0,-1.9898 0.66327,-3.9796 2.65307,-4.64287 1.32653,-1.32654 3.31634,-1.32654 5.30614,-0.66327 l 43.11239,15.91842 c 1.98981,0.66327 3.97961,3.31634 3.97961,5.30614 v 29.18378 c 0,1.9898 -0.66327,3.31634 -2.65307,4.64287 -0.66327,0 -1.9898,0.66327 -3.31634,0.66327 z m -37.14298,-24.5409 31.83684,10.61228 v -17.24496 l -31.83684,-11.93881 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path19" | ||||||
|  |      d="m 638.39448,350.23458 c -0.66327,0 -0.66327,0 -1.32654,0 l -41.78586,-9.94902 c -2.65307,-0.66327 -4.64287,-2.65307 -4.64287,-5.30614 v -31.17358 c 0,-1.9898 0.66327,-3.31633 1.9898,-4.64287 1.32654,-1.32653 3.31634,-1.32653 5.30614,-0.66327 l 41.78586,11.27555 c 2.65307,0.66327 3.97961,2.65307 3.97961,5.30614 v 29.84705 c 0,1.9898 -0.66327,3.31633 -1.9898,4.64287 -0.66327,0 -1.98981,0.66327 -3.31634,0.66327 z m -35.81645,-20.5613 30.51031,7.29594 V 319.061 l -30.51031,-7.95921 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path21" | ||||||
|  |      d="m 525.63898,218.24432 c -0.66326,0 -1.32653,0 -1.9898,0 l -37.14298,-9.94901 c -2.65307,-0.66327 -4.64288,-3.31634 -4.64288,-6.63268 v -49.0818 c 0,-1.9898 1.32654,-3.97961 2.65307,-5.30614 1.98981,-1.32654 3.97961,-1.32654 5.96941,-0.66327 l 37.14299,13.26535 c 2.65307,0.66327 4.64287,3.31634 4.64287,5.96941 v 45.76547 c 0,1.9898 -0.66327,3.9796 -2.65307,5.30614 -1.32653,0.66326 -2.65307,1.32653 -3.97961,1.32653 z m -30.51031,-21.88783 23.87764,6.63268 v -32.50012 l -23.87764,-8.62247 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path23" | ||||||
|  |      d="m 690.79262,356.86725 c -8.62248,0 -15.25516,-7.95921 -15.25516,-17.24496 0,-9.28574 6.63268,-17.24495 15.25516,-17.24495 8.62248,0 15.25515,7.95921 15.25515,17.24495 0,9.28575 -6.63267,17.24496 -15.25515,17.24496 z m 0,-25.20417 c -3.31634,0 -5.96941,3.31634 -5.96941,7.95921 0,4.64288 2.65307,7.95922 5.96941,7.95922 3.31634,0 5.96941,-3.31634 5.96941,-7.95922 0,-4.64287 -2.65307,-7.95921 -5.96941,-7.95921 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path25" | ||||||
|  |      d="m 1041.6612,199.67283 c -1.3265,0 -2.6531,-0.66327 -3.9796,-1.32654 -1.9898,-1.32653 -2.6531,-3.31633 -2.6531,-5.30614 v -46.42873 c 0,-2.65307 1.9898,-5.30614 4.6429,-5.96941 l 36.4797,-13.26535 c 1.9898,-0.66327 3.9796,-0.66327 5.9694,0.66327 1.9898,1.32653 2.6531,3.31634 2.6531,5.30614 v 49.0818 c 0,2.65307 -1.9898,5.30614 -4.6429,6.63268 l -36.4797,10.61228 c -0.6633,0 -1.3265,0 -1.9898,0 z m 6.6327,-48.41854 v 33.16338 l 23.2143,-6.63267 v -34.48992 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path27" | ||||||
|  |      d="m 1041.6612,292.53029 c -1.3265,0 -2.6531,-0.66326 -3.9796,-1.32653 -1.3266,-1.32654 -2.6531,-3.31634 -2.6531,-5.30614 v -47.75527 c 0,-3.31634 1.9898,-5.96941 5.3062,-6.63268 l 36.4797,-9.28574 c 1.9898,-0.66327 3.9796,0 5.9694,1.32653 1.3265,1.32654 2.653,3.31634 2.653,5.30614 v 49.08181 c 0,3.31634 -1.9898,5.96941 -5.3061,6.63267 l -36.4797,7.95921 c -1.3265,0 -1.3265,0 -1.9898,0 z m 6.6327,-49.0818 v 34.48992 l 23.2143,-5.30614 v -35.15319 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path29" | ||||||
|  |      d="m 981.9671,306.45891 c -1.32653,0 -2.65307,-0.66326 -3.97961,-1.32653 -1.32653,-1.32654 -2.65307,-3.31634 -2.65307,-5.30614 v -47.75527 c 0,-3.31634 1.98981,-5.96941 5.30615,-6.63268 l 36.47973,-9.28574 c 1.9898,-0.66327 3.9796,0 5.9694,1.32653 1.3265,1.32654 2.6531,3.31634 2.6531,5.30614 v 48.41854 c 0,3.31634 -1.9898,5.96941 -5.3062,6.63268 l -36.4797,8.62247 c -0.66326,0 -1.32653,0 -1.9898,0 z m 6.63268,-49.0818 v 34.48992 l 23.21432,-5.30614 v -34.48992 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path31" | ||||||
|  |      d="m 897.06885,285.23435 c -1.32654,0 -2.65307,-0.66327 -3.31634,-1.32653 -1.32654,-1.32654 -2.65307,-2.65307 -2.65307,-4.64288 v -29.18377 c 0,-2.65307 1.32653,-4.64288 3.9796,-5.30614 l 43.77567,-15.91843 c 1.9898,-0.66326 3.9796,-0.66326 5.30614,0.66327 1.32653,1.32654 2.65307,2.65307 2.65307,4.64287 v 30.51031 c 0,2.65308 -1.32654,4.64288 -3.97961,5.30615 l -43.77566,14.59188 c -0.66327,0.66327 -1.32654,0.66327 -1.9898,0.66327 z m 5.9694,-31.17358 v 17.24496 l 32.50012,-10.61228 v -17.90823 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path33" | ||||||
|  |      d="m 865.89527,349.57131 c -1.32654,-1.32654 -1.9898,-2.65307 -1.9898,-4.64287 v -29.84705 c 0,-2.65307 1.9898,-4.64287 3.9796,-5.30614 l 41.78586,-11.27555 c 1.9898,-0.66326 3.31634,0 5.30614,0.66327 1.32654,1.32654 1.9898,2.65307 1.9898,4.64287 v 31.17358 c 0,2.65307 -1.9898,5.30614 -4.64287,5.30614 l -41.78586,9.94902 c -0.66327,0.66326 -3.9796,0 -4.64287,-0.66327 z m 9.28575,-29.84704 v 17.90822 l 30.51031,-7.29594 v -19.23476 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path35" | ||||||
|  |      d="m 981.9671,218.24432 c -1.32653,0 -2.65307,-0.66327 -3.97961,-1.32653 -1.32653,-1.32654 -2.65307,-3.31634 -2.65307,-5.30614 v -45.76547 c 0,-2.65307 1.98981,-5.30614 4.64288,-5.96941 l 36.4797,-13.26535 c 1.9898,-0.66327 3.9796,-0.66327 5.9694,0.66327 1.9898,1.32653 2.6531,3.31634 2.6531,5.30614 v 49.0818 c 0,3.31634 -1.9898,5.30614 -4.6429,6.63268 l -36.4797,9.94901 c -0.66326,0 -1.32653,0 -1.9898,0 z m 6.63268,-47.75527 v 32.50012 l 23.21432,-6.63268 v -34.48991 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path37" | ||||||
|  |      d="m 816.81347,356.86725 c -8.62248,0 -15.25516,-7.95921 -15.25516,-17.24496 0,-9.28574 6.63268,-17.24495 15.25516,-17.24495 8.62247,0 15.25515,7.95921 15.25515,17.24495 0,9.28575 -6.63268,17.24496 -15.25515,17.24496 z m 0,-25.20417 c -3.31634,0 -5.96941,3.31634 -5.96941,7.95921 0,4.64288 2.65307,7.95922 5.96941,7.95922 3.31633,0 5.9694,-3.31634 5.9694,-7.95922 0,-4.64287 -2.65307,-7.95921 -5.9694,-7.95921 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path39" | ||||||
|  |      d="m 1275.7947,-13.236074 c 0,-1.326535 0,-1.989803 0,-3.316338 -1.3266,-3.316338 -5.3062,-5.306141 -8.6225,-3.979606 l -37.143,13.9286203 V 7.3252221 13.957898 l 32.5001,-15.2551549 V 529.31683 h -32.5001 v 13.26535 h 39.1328 c 3.9796,0 6.6327,-2.65307 7.2959,-6.63267 V -11.909539 c 0,0 0,-0.663267 -0.6632,-1.326535 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path41" | ||||||
|  |      d="m 1108.6512,53.090687 v -13.92862 l -33.1634,12.602085 c -0.6632,0 -0.6632,0.663268 -1.3265,0.663268 0,0 -113.41876,69.6431 -115.40857,70.96963 -1.9898,1.32654 -3.9796,3.31634 -3.9796,5.96941 v 37.80626 l -109.43916,65.00022 c -1.9898,0.66327 -3.31634,3.31634 -3.31634,5.30614 l -0.66326,31.83685 -59.69409,35.15318 c -3.31634,1.9898 -1.9898,6.63268 -1.9898,9.94902 0,3.31633 0,72.29616 0,72.29616 l -25.20417,-9.28574 c -1.32654,-0.66327 -3.31634,-0.66327 -4.64287,0 l -22.5511,9.28574 c 0,0 0,-71.6329 0,-72.29616 0,-3.97961 0.66327,-7.29595 -2.65307,-9.28575 l -59.69409,-35.15318 -0.66326,-31.83685 c 0,-1.9898 -1.32654,-3.97961 -3.31634,-5.30614 L 552.16969,168.49925 v -39.13279 c 0,-2.65307 -1.32654,-4.64287 -3.97961,-5.96941 l -8.62248,-3.9796 -130.66371,-78.928847 c -0.66327,0 -0.66327,-0.663268 -1.32654,-0.663268 l -9.28575,-3.979606 v 14.591888 l 3.97961,1.989803 31.17358,19.898028 -25.20417,-11.27555 c -0.66327,0 -0.66327,0 -0.66327,0 l -9.28575,-5.30614 v 15.918422 458.98119 13.26535 h 5.96941 c 1.9898,0 3.31634,-0.66327 5.30614,-1.9898 1.98981,-1.32654 342.90936,-150.56175 342.90936,-150.56175 0,0 346.88899,151.88828 348.87879,152.55155 1.9898,0.66327 7.2959,0 7.2959,0 V 530.64337 71.66218 57.73356 l -60.3573,26.530705 31.8368,-19.898028 z M 502.42462,485.54117 451.35301,508.09227 V 343.6019 l 51.07161,9.28575 z m 35.81645,-290.51121 v 273.92952 l -22.5511,9.94901 V 347.58151 c 0,-3.31634 -1.9898,-5.96941 -5.30614,-6.63268 l -64.33696,-11.27555 c -1.9898,-0.66327 -3.9796,0 -5.30614,1.32654 -1.9898,1.32653 -2.65307,3.31633 -2.65307,5.30614 v 177.09245 l -26.5307,11.93882 V 76.968321 l 119.38817,53.061409 7.29594,3.97961 z m 13.92862,-11.27555 47.092,27.85724 -47.092,-20.5613 z m 35.81645,183.72512 27.85724,3.97961 0.66327,63.01042 -27.85724,11.93882 z m 61.68389,-76.93904 c 0,0.66327 0,1.9898 0,2.65307 v 126.68412 l -22.5511,9.94901 -0.66327,-63.01042 c 0,-3.31634 -1.9898,-5.30614 -4.64287,-5.96941 L 582.68,354.87745 c -1.9898,0 -3.31634,0 -4.64287,1.32653 -1.32654,1.32654 -1.98981,2.65308 -1.98981,4.64288 l 0.66327,90.86766 -24.5409,10.61228 V 204.97897 l 97.50034,43.11239 z m 13.26535,-5.96941 11.93882,7.29595 -11.93882,-3.97961 z m 33.16338,115.40857 -11.27555,5.30614 v -31.17358 l 11.27555,1.32654 z m 17.90823,-7.95921 -8.62248,3.31633 V 370.1326 c 0,-2.65307 -1.98981,-4.64287 -4.64288,-4.64287 l -20.56129,-1.32653 c -1.32654,0 -2.65307,0.66326 -3.31634,1.32653 -0.66327,0.66327 -1.32654,1.9898 -1.32654,3.31634 v 40.45932 l -12.60208,5.30614 V 302.47931 l 51.07161,17.24496 z m 108.11262,11.93881 -11.27555,-5.30614 v -24.5409 l 11.27555,-0.66327 z m 21.88783,9.94902 -13.26535,-5.96941 v -39.13279 c 0,-1.32654 -0.66327,-2.65307 -1.32654,-3.31634 -0.66327,-0.66327 -1.9898,-1.32653 -3.31634,-1.32653 l -20.56129,1.32653 c -2.65307,0 -4.64288,1.9898 -4.64288,4.64287 v 24.54091 l -7.95921,-3.31634 v -72.95944 l 51.07161,-16.58169 z m 0,-125.35758 -22.5511,7.29594 22.5511,-13.26535 z m 72.29617,157.19442 -27.85724,-12.60208 0.66327,-63.67369 27.85723,-3.97961 z m 38.46952,17.24496 -27.19397,-11.93882 0.66326,-91.53093 c 0,-1.9898 -0.66326,-3.31634 -1.9898,-4.64287 -1.32653,-1.32654 -2.65307,-1.32654 -4.64287,-1.32654 l -39.13279,5.96941 c -2.65307,0.66327 -4.64287,3.31634 -4.64287,5.96941 l -0.66327,63.01042 -19.89803,-8.62247 v -126.68412 -45.1022 l 97.50034,-43.11239 z m 0,-271.93972 -57.04102,25.20417 57.04102,-33.82665 z M 1001.8651,484.8779 V 350.89784 l 51.0716,-8.62247 V 506.76573 Z M 1094.7226,77.631589 V 526.00049 l -28.5205,-12.60208 V 334.97942 c 0,-1.9898 -1.3265,-3.9796 -2.6531,-5.30614 -1.3265,-1.32653 -3.3163,-1.9898 -5.3061,-1.32653 l -64.33698,11.27554 c -3.31634,0.66327 -5.30614,3.31634 -5.30614,6.63268 v 132.65352 l -19.89803,-8.62248 -0.66327,-335.61341 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path43" | ||||||
|  |      d="M 243.08698,-0.63398925 274.92383,13.957898 V 9.9782925 -3.9503273 l -28.52051,-9.9490137 -7.29594,-3.316338 c -2.65307,-0.663268 -4.64288,-0.663268 -6.63268,0.663267 -1.9898,0.663268 -3.31634,3.316338 -3.31634,5.306141 V 536.61277 c 0,3.97961 2.65307,6.63268 6.63268,6.63268 h 39.13279 V 529.9801 h -31.83685 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path51" | ||||||
|  |      d="m 1169.6718,118.09091 c -20.5613,0 -37.143,-16.58169 -37.143,-37.142983 V -51.042328 H 974.67116 c -20.5613,0 -37.14299,-16.58169 -37.14299,-37.142986 0,-20.561296 16.58169,-37.142986 37.14299,-37.142986 h 195.00064 c 20.5613,0 37.143,16.58169 37.143,37.142986 V 80.947927 c 0,20.561293 -16.5817,37.142983 -37.143,37.142983 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path55" | ||||||
|  |      d="M 530.28186,647.37847 H 335.28118 c -20.5613,0 -37.14299,-16.58169 -37.14299,-37.14299 V 441.10224 c 0,-20.5613 16.58169,-37.14299 37.14299,-37.14299 20.5613,0 37.14299,16.58169 37.14299,37.14299 v 131.99025 h 157.85769 c 20.56129,0 37.14298,16.58169 37.14298,37.14299 0,20.5613 -16.58169,37.14299 -37.14298,37.14299 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path59" | ||||||
|  |      d="m 335.28118,118.09091 c -20.5613,0 -37.14299,-16.58169 -37.14299,-37.142983 V -88.185314 c 0,-20.561296 16.58169,-37.142986 37.14299,-37.142986 h 195.00068 c 20.56129,0 37.14298,16.58169 37.14298,37.142986 0,20.561296 -16.58169,37.142986 -37.14298,37.142986 H 372.42417 V 80.947927 c 0,20.561293 -16.58169,37.142983 -37.14299,37.142983 z" | ||||||
|  |      class="st1" /><path | ||||||
|  |      style="fill:#ffffff;stroke-width:6.63268" | ||||||
|  |      id="path63" | ||||||
|  |      d="M 1169.6718,647.37847 H 974.67116 c -20.5613,0 -37.14299,-16.58169 -37.14299,-37.14299 0,-20.5613 16.58169,-37.14299 37.14299,-37.14299 H 1132.5288 V 441.10224 c 0,-20.5613 16.5817,-37.14299 37.143,-37.14299 20.5613,0 37.143,16.58169 37.143,37.14299 v 169.13324 c 0,20.5613 -16.5817,37.14299 -37.143,37.14299 z" | ||||||
|  |      class="st1" /></g></svg> | ||||||
| After Width: | Height: | Size: 20 KiB | 
							
								
								
									
										2
									
								
								assets/svg/panoramax.svg.license
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								assets/svg/panoramax.svg.license
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | ||||||
|  | SPDX-FileCopyrightText: Panoramax | ||||||
|  | SPDX-License-Identifier: LicenseRef-LOGO | ||||||
							
								
								
									
										217
									
								
								assets/svg/panoramax_bw.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										217
									
								
								assets/svg/panoramax_bw.svg
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,217 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||||
|  | <!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --> | ||||||
|  | 
 | ||||||
|  | <svg | ||||||
|  |    version="1.1" | ||||||
|  |    id="Calque_1" | ||||||
|  |    x="0px" | ||||||
|  |    y="0px" | ||||||
|  |    width="343.25757mm" | ||||||
|  |    height="343.25757mm" | ||||||
|  |    viewBox="0 0 1297.3515 1297.3513" | ||||||
|  |    xml:space="preserve" | ||||||
|  |    sodipodi:docname="panoramax_bw.svg" | ||||||
|  |    inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)" | ||||||
|  |    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||||
|  |    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||||
|  |    xmlns="http://www.w3.org/2000/svg" | ||||||
|  |    xmlns:svg="http://www.w3.org/2000/svg" | ||||||
|  |    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||||
|  |    xmlns:cc="http://creativecommons.org/ns#" | ||||||
|  |    xmlns:dc="http://purl.org/dc/elements/1.1/"><sodipodi:namedview | ||||||
|  |    id="namedview1" | ||||||
|  |    pagecolor="#ffffff" | ||||||
|  |    bordercolor="#999999" | ||||||
|  |    borderopacity="1" | ||||||
|  |    inkscape:showpageshadow="2" | ||||||
|  |    inkscape:pageopacity="0" | ||||||
|  |    inkscape:pagecheckerboard="0" | ||||||
|  |    inkscape:deskcolor="#d1d1d1" | ||||||
|  |    inkscape:document-units="mm" | ||||||
|  |    inkscape:zoom="0.45168948" | ||||||
|  |    inkscape:cx="618.78793" | ||||||
|  |    inkscape:cy="809.18422" | ||||||
|  |    inkscape:window-width="1920" | ||||||
|  |    inkscape:window-height="995" | ||||||
|  |    inkscape:window-x="0" | ||||||
|  |    inkscape:window-y="0" | ||||||
|  |    inkscape:window-maximized="1" | ||||||
|  |    inkscape:current-layer="Calque_1" /><metadata | ||||||
|  |    id="metadata118"><rdf:RDF><cc:Work | ||||||
|  |        rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type | ||||||
|  |          rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs | ||||||
|  |    id="defs72"><rect | ||||||
|  |      x="1150.3843" | ||||||
|  |      y="2292.8162" | ||||||
|  |      width="2107.8879" | ||||||
|  |      height="701.88715" | ||||||
|  |      id="rect141823" /><rect | ||||||
|  |      x="411.88269" | ||||||
|  |      y="1261.6108" | ||||||
|  |      width="815.34668" | ||||||
|  |      height="181.92911" | ||||||
|  |      id="rect66775" /><rect | ||||||
|  |      x="253.02008" | ||||||
|  |      y="1213.0352" | ||||||
|  |      width="2209.7197" | ||||||
|  |      height="583.65765" | ||||||
|  |      id="rect60279" /><rect | ||||||
|  |      x="1150.3843" | ||||||
|  |      y="2292.8162" | ||||||
|  |      width="2551.0081" | ||||||
|  |      height="701.39136" | ||||||
|  |      id="rect141823-1" /><linearGradient | ||||||
|  |      y2="62.288601" | ||||||
|  |      x2="248.6918" | ||||||
|  |      y1="231.7114" | ||||||
|  |      x1="346.50821" | ||||||
|  |      gradientUnits="userSpaceOnUse" | ||||||
|  |      id="SVGID_1_" | ||||||
|  |      gradientTransform="matrix(6.6326761,0,0,6.6326761,-1325.2087,-326.32767)"> | ||||||
|  | 		<stop | ||||||
|  |    id="stop4" | ||||||
|  |    style="stop-color:#8F2A85" | ||||||
|  |    offset="0" /> | ||||||
|  | 		<stop | ||||||
|  |    id="stop6" | ||||||
|  |    style="stop-color:#2570B6" | ||||||
|  |    offset="1" /> | ||||||
|  | 	</linearGradient></defs> | ||||||
|  | <style | ||||||
|  |    type="text/css" | ||||||
|  |    id="style2"> | ||||||
|  | 	.st0{fill:url(#SVGID_1_);} | ||||||
|  | 	.st1{fill:#FFFFFF;} | ||||||
|  | 	.st2{display:none;fill:none;stroke:#E62054;stroke-width:7.5;stroke-miterlimit:10;} | ||||||
|  | </style> | ||||||
|  | 
 | ||||||
|  | <text | ||||||
|  |    y="-2248.8188" | ||||||
|  |    style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect60279);display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||||
|  |    id="text60277" | ||||||
|  |    xml:space="preserve" | ||||||
|  |    transform="matrix(0.99999889,0,0,0.99999889,-164.71991,-165.18467)" /><text | ||||||
|  |    y="-4324.1934" | ||||||
|  |    x="304.06815" | ||||||
|  |    style="font-style:normal;font-weight:normal;font-size:89.8058px;line-height:200%;font-family:Sans;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect66775);display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.24515px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||||
|  |    id="text66773" | ||||||
|  |    xml:space="preserve" | ||||||
|  |    transform="matrix(0.99999889,0,0,0.99999889,-164.71991,-165.18467)" /><text | ||||||
|  |    y="-2248.5173" | ||||||
|  |    x="-121.66869" | ||||||
|  |    style="font-style:normal;font-weight:normal;font-size:40px;line-height:0;font-family:Sans;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect141823);display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||||
|  |    id="text141821" | ||||||
|  |    xml:space="preserve" | ||||||
|  |    transform="matrix(0.99999889,0,0,0.99999889,-164.71991,-165.18467)" /><text | ||||||
|  |    y="-3181.1731" | ||||||
|  |    x="-158.83984" | ||||||
|  |    style="font-style:normal;font-weight:normal;font-size:40px;line-height:0;font-family:Sans;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect141823-1);display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" | ||||||
|  |    id="text141821-0" | ||||||
|  |    xml:space="preserve" | ||||||
|  |    transform="matrix(0.99999889,0,0,0.99999889,-164.71991,-165.18467)" /><path | ||||||
|  |    style="display:none;fill:none;stroke:#e62054;stroke-width:49.7451;stroke-miterlimit:10" | ||||||
|  |    id="path49" | ||||||
|  |    d="m 1065.871,503.42011 c -19.2347,0 -35.1531,-15.91842 -35.1531,-35.15318 V 334.28687 H 870.87032 c -19.23476,0 -35.15319,-15.91842 -35.15319,-35.15318 0,-19.23476 15.91843,-35.15319 35.15319,-35.15319 H 1065.871 c 19.2348,0 35.1532,15.91843 35.1532,35.15319 v 169.13324 c 0.6633,19.23476 -15.2551,35.15318 -35.1532,35.15318 z" | ||||||
|  |    class="st2" /><path | ||||||
|  |    style="display:none;fill:none;stroke:#e62054;stroke-width:49.7451;stroke-miterlimit:10" | ||||||
|  |    id="path53" | ||||||
|  |    d="M 426.48102,1032.7077 H 231.48034 c -19.23476,0 -35.15318,-15.9185 -35.15318,-35.15322 V 828.42124 c 0,-19.23476 15.91842,-35.15318 35.15318,-35.15318 19.23476,0 35.15318,15.91842 35.15318,35.15318 v 133.31679 h 159.8475 c 19.23476,0 35.15318,15.91842 35.15318,35.15318 0,19.23479 -15.25515,35.81649 -35.15318,35.81649 z" | ||||||
|  |    class="st2" /><path | ||||||
|  |    style="display:none;fill:none;stroke:#e62054;stroke-width:49.7451;stroke-miterlimit:10" | ||||||
|  |    id="path57" | ||||||
|  |    d="m 231.48034,503.42011 c -19.23476,0 -35.15318,-15.91842 -35.15318,-35.15318 V 299.13369 c 0,-19.23476 15.91842,-35.15319 35.15318,-35.15319 h 195.00068 c 19.23476,0 35.15318,15.91843 35.15318,35.15319 0,19.23476 -15.91842,35.15318 -35.15318,35.15318 h -159.8475 v 133.31679 c 0.66327,19.89803 -15.25515,35.81645 -35.15318,35.81645 z" | ||||||
|  |    class="st2" /><path | ||||||
|  |    style="display:none;fill:none;stroke:#e62054;stroke-width:49.7451;stroke-miterlimit:10" | ||||||
|  |    id="path61" | ||||||
|  |    d="M 1065.871,1032.7077 H 870.87032 c -19.23476,0 -35.15319,-15.9185 -35.15319,-35.15322 0,-19.23476 15.91843,-35.15318 35.15319,-35.15318 H 1030.7179 V 829.08451 c 0,-19.23476 15.9184,-35.15319 35.1531,-35.15319 19.2348,0 35.1532,15.91843 35.1532,35.15319 v 169.13324 c 0.6633,18.57145 -15.2551,34.48995 -35.1532,34.48995 z" | ||||||
|  |    class="st2" /><circle | ||||||
|  |    style="fill:#ffffff;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="circle9" | ||||||
|  |    r="648.67572" | ||||||
|  |    cy="648.67572" | ||||||
|  |    cx="648.67572" | ||||||
|  |    class="st0" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path11" | ||||||
|  |    d="m 361.48079,586.99183 c -0.66327,0 -1.32653,0 -1.9898,0 l -36.47972,-10.61228 c -2.65307,-0.66327 -4.64287,-3.31634 -4.64287,-6.63268 v -49.0818 c 0,-1.9898 1.32653,-3.97961 2.65307,-5.30614 1.9898,-1.32654 3.9796,-1.32654 5.96941,-0.66327 l 36.47972,13.26535 c 2.65307,0.66327 4.64287,3.31634 4.64287,5.96941 v 46.42873 c 0,1.98981 -0.66327,3.97961 -2.65307,5.30614 -1.32654,0.66327 -2.65307,1.32654 -3.97961,1.32654 z m -29.84704,-22.5511 23.21437,6.63268 v -33.16338 l -23.21437,-8.62248 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path13" | ||||||
|  |    d="m 361.48079,679.84929 c -0.66327,0 -0.66327,0 -1.32653,0 l -36.47972,-7.95921 c -3.31634,-0.66326 -5.30614,-3.31633 -5.30614,-6.63267 V 616.1756 c 0,-1.9898 0.66327,-3.9796 2.65307,-5.30614 1.32653,-1.32653 3.9796,-1.9898 5.96941,-1.32653 l 36.47972,9.28574 c 2.65307,0.66327 5.30614,3.31634 5.30614,6.63268 v 47.75527 c 0,1.9898 -0.66327,3.9796 -2.65307,5.30614 -1.98981,0.66327 -3.31634,1.32653 -4.64288,1.32653 z m -29.84704,-19.89802 23.21437,5.30614 v -34.48992 l -23.21437,-5.96941 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path15" | ||||||
|  |    d="m 421.83814,693.77791 c -0.66326,0 -1.32653,0 -1.32653,0 l -36.47972,-8.62247 c -3.31634,-0.66327 -5.30614,-3.31634 -5.30614,-6.63268 v -48.41854 c 0,-1.9898 0.66327,-3.9796 2.65307,-5.30614 1.9898,-1.32653 3.97961,-1.9898 5.96941,-1.32653 l 36.47972,9.28574 c 2.65307,0.66327 5.30614,3.31634 5.30614,6.63268 v 47.75527 c 0,1.9898 -0.66327,3.9796 -2.65307,5.30614 -1.9898,0.66327 -3.31634,1.32653 -4.64288,1.32653 z m -29.84704,-20.56129 23.21437,5.30614 v -34.48992 l -23.21437,-5.96941 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path17" | ||||||
|  |    d="m 506.07313,672.55335 c -0.66327,0 -1.32653,0 -1.9898,0 l -43.1124,-14.59189 c -2.65307,-0.66326 -3.9796,-3.31633 -3.9796,-5.30614 v -30.51031 c 0,-1.9898 0.66327,-3.9796 2.65307,-4.64287 1.32653,-1.32654 3.31634,-1.32654 5.30614,-0.66327 l 43.11239,15.91842 c 1.98981,0.66327 3.97961,3.31634 3.97961,5.30614 v 29.18378 c 0,1.9898 -0.66327,3.31634 -2.65307,4.64287 -0.66327,0 -1.9898,0.66327 -3.31634,0.66327 z m -37.14298,-24.5409 31.83684,10.61228 v -17.24496 l -31.83684,-11.93881 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path19" | ||||||
|  |    d="m 534.59364,737.55358 c -0.66327,0 -0.66327,0 -1.32654,0 l -41.78586,-9.94902 c -2.65307,-0.66327 -4.64287,-2.65307 -4.64287,-5.30614 v -31.17358 c 0,-1.9898 0.66327,-3.31633 1.9898,-4.64287 1.32654,-1.32653 3.31634,-1.32653 5.30614,-0.66327 l 41.78586,11.27555 c 2.65307,0.66327 3.97961,2.65307 3.97961,5.30614 v 29.84705 c 0,1.9898 -0.66327,3.31633 -1.9898,4.64287 -0.66327,0 -1.98981,0.66327 -3.31634,0.66327 z m -35.81645,-20.5613 30.51031,7.29594 V 706.38 l -30.51031,-7.95921 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path21" | ||||||
|  |    d="m 421.83814,605.56332 c -0.66326,0 -1.32653,0 -1.9898,0 l -37.14298,-9.94901 c -2.65307,-0.66327 -4.64288,-3.31634 -4.64288,-6.63268 v -49.0818 c 0,-1.9898 1.32654,-3.97961 2.65307,-5.30614 1.98981,-1.32654 3.97961,-1.32654 5.96941,-0.66327 l 37.14299,13.26535 c 2.65307,0.66327 4.64287,3.31634 4.64287,5.96941 v 45.76547 c 0,1.9898 -0.66327,3.9796 -2.65307,5.30614 -1.32653,0.66326 -2.65307,1.32653 -3.97961,1.32653 z m -30.51031,-21.88783 23.87764,6.63268 v -32.50012 l -23.87764,-8.62247 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path23" | ||||||
|  |    d="m 586.99178,744.18625 c -8.62248,0 -15.25516,-7.95921 -15.25516,-17.24496 0,-9.28574 6.63268,-17.24495 15.25516,-17.24495 8.62248,0 15.25515,7.95921 15.25515,17.24495 0,9.28575 -6.63267,17.24496 -15.25515,17.24496 z m 0,-25.20417 c -3.31634,0 -5.96941,3.31634 -5.96941,7.95921 0,4.64288 2.65307,7.95922 5.96941,7.95922 3.31634,0 5.96941,-3.31634 5.96941,-7.95922 0,-4.64287 -2.65307,-7.95921 -5.96941,-7.95921 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path25" | ||||||
|  |    d="m 937.86036,586.99183 c -1.3265,0 -2.6531,-0.66327 -3.9796,-1.32654 -1.9898,-1.32653 -2.6531,-3.31633 -2.6531,-5.30614 v -46.42873 c 0,-2.65307 1.9898,-5.30614 4.6429,-5.96941 l 36.4797,-13.26535 c 1.9898,-0.66327 3.9796,-0.66327 5.9694,0.66327 1.9898,1.32653 2.6531,3.31634 2.6531,5.30614 v 49.0818 c 0,2.65307 -1.9898,5.30614 -4.6429,6.63268 l -36.4797,10.61228 c -0.6633,0 -1.3265,0 -1.9898,0 z m 6.6327,-48.41854 v 33.16338 l 23.2143,-6.63267 v -34.48992 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path27" | ||||||
|  |    d="m 937.86036,679.84929 c -1.3265,0 -2.6531,-0.66326 -3.9796,-1.32653 -1.3266,-1.32654 -2.6531,-3.31634 -2.6531,-5.30614 v -47.75527 c 0,-3.31634 1.9898,-5.96941 5.3062,-6.63268 l 36.4797,-9.28574 c 1.9898,-0.66327 3.9796,0 5.9694,1.32653 1.3265,1.32654 2.653,3.31634 2.653,5.30614 v 49.08181 c 0,3.31634 -1.9898,5.96941 -5.3061,6.63267 l -36.4797,7.95921 c -1.3265,0 -1.3265,0 -1.9898,0 z m 6.6327,-49.0818 v 34.48992 l 23.2143,-5.30614 v -35.15319 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path29" | ||||||
|  |    d="m 878.16626,693.77791 c -1.32653,0 -2.65307,-0.66326 -3.97961,-1.32653 -1.32653,-1.32654 -2.65307,-3.31634 -2.65307,-5.30614 v -47.75527 c 0,-3.31634 1.98981,-5.96941 5.30615,-6.63268 l 36.47973,-9.28574 c 1.9898,-0.66327 3.9796,0 5.9694,1.32653 1.3265,1.32654 2.6531,3.31634 2.6531,5.30614 v 48.41854 c 0,3.31634 -1.9898,5.96941 -5.3062,6.63268 l -36.4797,8.62247 c -0.66326,0 -1.32653,0 -1.9898,0 z m 6.63268,-49.0818 v 34.48992 l 23.21432,-5.30614 v -34.48992 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path31" | ||||||
|  |    d="m 793.26801,672.55335 c -1.32654,0 -2.65307,-0.66327 -3.31634,-1.32653 -1.32654,-1.32654 -2.65307,-2.65307 -2.65307,-4.64288 v -29.18377 c 0,-2.65307 1.32653,-4.64288 3.9796,-5.30614 l 43.77567,-15.91843 c 1.9898,-0.66326 3.9796,-0.66326 5.30614,0.66327 1.32653,1.32654 2.65307,2.65307 2.65307,4.64287 v 30.51031 c 0,2.65308 -1.32654,4.64288 -3.97961,5.30615 l -43.77566,14.59188 c -0.66327,0.66327 -1.32654,0.66327 -1.9898,0.66327 z m 5.9694,-31.17358 v 17.24496 l 32.50012,-10.61228 v -17.90823 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path33" | ||||||
|  |    d="m 762.09443,736.89031 c -1.32654,-1.32654 -1.9898,-2.65307 -1.9898,-4.64287 v -29.84705 c 0,-2.65307 1.9898,-4.64287 3.9796,-5.30614 l 41.78586,-11.27555 c 1.9898,-0.66326 3.31634,0 5.30614,0.66327 1.32654,1.32654 1.9898,2.65307 1.9898,4.64287 v 31.17358 c 0,2.65307 -1.9898,5.30614 -4.64287,5.30614 l -41.78586,9.94902 c -0.66327,0.66326 -3.9796,0 -4.64287,-0.66327 z m 9.28575,-29.84704 v 17.90822 l 30.51031,-7.29594 v -19.23476 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path35" | ||||||
|  |    d="m 878.16626,605.56332 c -1.32653,0 -2.65307,-0.66327 -3.97961,-1.32653 -1.32653,-1.32654 -2.65307,-3.31634 -2.65307,-5.30614 v -45.76547 c 0,-2.65307 1.98981,-5.30614 4.64288,-5.96941 l 36.4797,-13.26535 c 1.9898,-0.66327 3.9796,-0.66327 5.9694,0.66327 1.9898,1.32653 2.6531,3.31634 2.6531,5.30614 v 49.0818 c 0,3.31634 -1.9898,5.30614 -4.6429,6.63268 l -36.4797,9.94901 c -0.66326,0 -1.32653,0 -1.9898,0 z m 6.63268,-47.75527 v 32.50012 l 23.21432,-6.63268 v -34.48991 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path37" | ||||||
|  |    d="m 713.01263,744.18625 c -8.62248,0 -15.25516,-7.95921 -15.25516,-17.24496 0,-9.28574 6.63268,-17.24495 15.25516,-17.24495 8.62247,0 15.25515,7.95921 15.25515,17.24495 0,9.28575 -6.63268,17.24496 -15.25515,17.24496 z m 0,-25.20417 c -3.31634,0 -5.96941,3.31634 -5.96941,7.95921 0,4.64288 2.65307,7.95922 5.96941,7.95922 3.31633,0 5.9694,-3.31634 5.9694,-7.95922 0,-4.64287 -2.65307,-7.95921 -5.9694,-7.95921 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path39" | ||||||
|  |    d="m 1171.9939,374.08293 c 0,-1.32654 0,-1.98981 0,-3.31634 -1.3266,-3.31634 -5.3062,-5.30614 -8.6225,-3.97961 l -37.143,13.92862 v 13.92862 6.63268 l 32.5001,-15.25516 v 530.61409 h -32.5001 v 13.26535 h 39.1328 c 3.9796,0 6.6327,-2.65307 7.2959,-6.63267 V 375.40946 c 0,0 0,-0.66327 -0.6632,-1.32653 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path41" | ||||||
|  |    d="m 1004.8504,440.40969 v -13.92862 l -33.16344,12.60208 c -0.6632,0 -0.6632,0.66327 -1.3265,0.66327 0,0 -113.41876,69.6431 -115.40857,70.96963 -1.9898,1.32654 -3.9796,3.31634 -3.9796,5.96941 v 37.80626 l -109.43916,65.00022 c -1.9898,0.66327 -3.31634,3.31634 -3.31634,5.30614 l -0.66326,31.83685 -59.69409,35.15318 c -3.31634,1.9898 -1.9898,6.63268 -1.9898,9.94902 0,3.31633 0,72.29616 0,72.29616 l -25.20417,-9.28574 c -1.32654,-0.66327 -3.31634,-0.66327 -4.64287,0 l -22.5511,9.28574 c 0,0 0,-71.6329 0,-72.29616 0,-3.97961 0.66327,-7.29595 -2.65307,-9.28575 l -59.69409,-35.15318 -0.66326,-31.83685 c 0,-1.9898 -1.32654,-3.97961 -3.31634,-5.30614 L 448.36885,555.81825 v -39.13279 c 0,-2.65307 -1.32654,-4.64287 -3.97961,-5.96941 l -8.62248,-3.9796 -130.66371,-78.92885 c -0.66327,0 -0.66327,-0.66327 -1.32654,-0.66327 l -9.28575,-3.9796 v 14.59189 l 3.97961,1.9898 31.17358,19.89803 -25.20417,-11.27555 c -0.66327,0 -0.66327,0 -0.66327,0 l -9.28575,-5.30614 v 15.91842 458.98119 13.26535 h 5.96941 c 1.9898,0 3.31634,-0.66327 5.30614,-1.9898 1.98981,-1.32654 342.90936,-150.56175 342.90936,-150.56175 0,0 346.88899,151.88828 348.87879,152.55155 1.9898,0.66327 7.29594,0 7.29594,0 V 917.96237 458.98118 445.05256 l -60.35734,26.5307 31.8368,-19.89802 z m -606.22662,432.45048 -51.07161,22.5511 V 730.9209 l 51.07161,9.28575 z m 35.81645,-290.51121 v 273.92952 l -22.5511,9.94901 V 734.90051 c 0,-3.31634 -1.9898,-5.96941 -5.30614,-6.63268 l -64.33696,-11.27555 c -1.9898,-0.66327 -3.9796,0 -5.30614,1.32654 -1.9898,1.32653 -2.65307,3.31633 -2.65307,5.30614 v 177.09245 l -26.5307,11.93882 V 464.28732 l 119.38817,53.06141 7.29594,3.97961 z m 13.92862,-11.27555 47.092,27.85724 -47.092,-20.5613 z m 35.81645,183.72512 27.85724,3.97961 0.66327,63.01042 -27.85724,11.93882 z m 61.68389,-76.93904 c 0,0.66327 0,1.9898 0,2.65307 v 126.68412 l -22.5511,9.94901 -0.66327,-63.01042 c 0,-3.31634 -1.9898,-5.30614 -4.64287,-5.96941 l -39.13279,-5.96941 c -1.9898,0 -3.31634,0 -4.64287,1.32653 -1.32654,1.32654 -1.98981,2.65308 -1.98981,4.64288 l 0.66327,90.86766 -24.5409,10.61228 V 592.29797 l 97.50034,43.11239 z m 13.26535,-5.96941 11.93882,7.29595 -11.93882,-3.97961 z m 33.16338,115.40857 -11.27555,5.30614 v -31.17358 l 11.27555,1.32654 z m 17.90823,-7.95921 -8.62248,3.31633 V 757.4516 c 0,-2.65307 -1.98981,-4.64287 -4.64288,-4.64287 L 576.3795,751.4822 c -1.32654,0 -2.65307,0.66326 -3.31634,1.32653 -0.66327,0.66327 -1.32654,1.9898 -1.32654,3.31634 v 40.45932 l -12.60208,5.30614 V 689.79831 l 51.07161,17.24496 z m 108.11262,11.93881 -11.27555,-5.30614 v -24.5409 l 11.27555,-0.66327 z m 21.88783,9.94902 -13.26535,-5.96941 v -39.13279 c 0,-1.32654 -0.66327,-2.65307 -1.32654,-3.31634 -0.66327,-0.66327 -1.9898,-1.32653 -3.31634,-1.32653 l -20.56129,1.32653 c -2.65307,0 -4.64288,1.9898 -4.64288,4.64287 v 24.54091 l -7.95921,-3.31634 v -72.95944 l 51.07161,-16.58169 z m 0,-125.35758 -22.5511,7.29594 22.5511,-13.26535 z m 72.29617,157.19442 -27.85724,-12.60208 0.66327,-63.67369 27.85723,-3.97961 z m 38.46952,17.24496 -27.19397,-11.93882 0.66326,-91.53093 c 0,-1.9898 -0.66326,-3.31634 -1.9898,-4.64287 -1.32653,-1.32654 -2.65307,-1.32654 -4.64287,-1.32654 l -39.13279,5.96941 c -2.65307,0.66327 -4.64287,3.31634 -4.64287,5.96941 l -0.66327,63.01042 -19.89803,-8.62247 v -126.68412 -45.1022 l 97.50034,-43.11239 z m 0,-271.93972 -57.04102,25.20417 57.04102,-33.82665 z M 898.06426,872.1969 V 738.21684 l 51.0716,-8.62247 v 164.49036 z m 92.8575,-407.24631 v 448.3689 l -28.5205,-12.60208 V 722.29842 c 0,-1.9898 -1.3265,-3.9796 -2.6531,-5.30614 -1.3265,-1.32653 -3.3163,-1.9898 -5.3061,-1.32653 l -64.33698,11.27554 c -3.31634,0.66327 -5.30614,3.31634 -5.30614,6.63268 v 132.65352 l -19.89803,-8.62248 -0.66327,-335.61341 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path43" | ||||||
|  |    d="m 139.28614,386.68501 31.83685,14.59189 v -3.97961 -13.92862 l -28.52051,-9.94901 -7.29594,-3.31634 c -2.65307,-0.66327 -4.64288,-0.66327 -6.63268,0.66327 -1.9898,0.66327 -3.31634,3.31634 -3.31634,5.30614 v 547.85904 c 0,3.97961 2.65307,6.63268 6.63268,6.63268 h 39.13279 V 917.2991 h -31.83685 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path51" | ||||||
|  |    d="m 1065.871,505.40991 c -20.5613,0 -37.143,-16.58169 -37.143,-37.14298 V 336.27667 H 870.87032 c -20.5613,0 -37.14299,-16.58169 -37.14299,-37.14298 0,-20.5613 16.58169,-37.14299 37.14299,-37.14299 H 1065.871 c 20.5613,0 37.143,16.58169 37.143,37.14299 v 169.13324 c 0,20.56129 -16.5817,37.14298 -37.143,37.14298 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path55" | ||||||
|  |    d="M 426.48102,1034.6975 H 231.48034 c -20.5613,0 -37.14299,-16.5817 -37.14299,-37.14302 V 828.42124 c 0,-20.5613 16.58169,-37.14299 37.14299,-37.14299 20.5613,0 37.14299,16.58169 37.14299,37.14299 v 131.99025 h 157.85769 c 20.56129,0 37.14298,16.58169 37.14298,37.14299 0,20.56132 -16.58169,37.14302 -37.14298,37.14302 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path59" | ||||||
|  |    d="m 231.48034,505.40991 c -20.5613,0 -37.14299,-16.58169 -37.14299,-37.14298 V 299.13369 c 0,-20.5613 16.58169,-37.14299 37.14299,-37.14299 h 195.00068 c 20.56129,0 37.14298,16.58169 37.14298,37.14299 0,20.56129 -16.58169,37.14298 -37.14298,37.14298 H 268.62333 v 131.99026 c 0,20.56129 -16.58169,37.14298 -37.14299,37.14298 z" | ||||||
|  |    class="st1" /><path | ||||||
|  |    style="fill:#000000;stroke-width:6.63268;fill-opacity:1" | ||||||
|  |    id="path63" | ||||||
|  |    d="M 1065.871,1034.6975 H 870.87032 c -20.5613,0 -37.14299,-16.5817 -37.14299,-37.14302 0,-20.5613 16.58169,-37.14299 37.14299,-37.14299 H 1028.728 V 828.42124 c 0,-20.5613 16.5817,-37.14299 37.143,-37.14299 20.5613,0 37.143,16.58169 37.143,37.14299 v 169.13324 c 0,20.56132 -16.5817,37.14302 -37.143,37.14302 z" | ||||||
|  |    class="st1" /></svg> | ||||||
| After Width: | Height: | Size: 20 KiB | 
							
								
								
									
										2
									
								
								assets/svg/panoramax_bw.svg.license
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								assets/svg/panoramax_bw.svg.license
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | ||||||
|  | SPDX-FileCopyrightText: Panoramax | ||||||
|  | SPDX-License-Identifier: LicenseRef-LOGO | ||||||
|  | @ -202,7 +202,9 @@ | ||||||
|             "openMapillary": "Open Mapillary here", |             "openMapillary": "Open Mapillary here", | ||||||
|             "openOsmcha": "See latest edits made with {theme}", |             "openOsmcha": "See latest edits made with {theme}", | ||||||
|             "openOsmchaLastWeek": "See edits from the last 7 days", |             "openOsmchaLastWeek": "See edits from the last 7 days", | ||||||
|  |             "openPanoramax": "Open Panoramax here", | ||||||
|             "openThemeDocumentation": "Open the documentation for thematic map {name}", |             "openThemeDocumentation": "Open the documentation for thematic map {name}", | ||||||
|  |             "panoramaxHelp": "<b>Panoramax</b> is an online service which gathers street-level pictures and offers them under a free license. Contributors are allowed to use these pictures to improve OpenStreetMap", | ||||||
|             "seeOnMapillary": "See this image on Mapillary", |             "seeOnMapillary": "See this image on Mapillary", | ||||||
|             "themeBy": "Theme maintained by {author}", |             "themeBy": "Theme maintained by {author}", | ||||||
|             "title": "Copyright and attribution", |             "title": "Copyright and attribution", | ||||||
|  |  | ||||||
|  | @ -4142,6 +4142,9 @@ | ||||||
|                     }, |                     }, | ||||||
|                     "2": { |                     "2": { | ||||||
|                         "then": "This drinking water is closed" |                         "then": "This drinking water is closed" | ||||||
|  |                     }, | ||||||
|  |                     "3": { | ||||||
|  |                         "then": "This drinking water is permanently closed" | ||||||
|                     } |                     } | ||||||
|                 }, |                 }, | ||||||
|                 "question": "Is this drinking water spot still operational?", |                 "question": "Is this drinking water spot still operational?", | ||||||
|  |  | ||||||
							
								
								
									
										28
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										28
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							|  | @ -58,13 +58,13 @@ | ||||||
|         "maplibre-gl": "^4.1.1", |         "maplibre-gl": "^4.1.1", | ||||||
|         "marked": "^12.0.2", |         "marked": "^12.0.2", | ||||||
|         "monaco-editor": "^0.46.0", |         "monaco-editor": "^0.46.0", | ||||||
|         "mvt-to-geojson": "^0.0.2", |         "mvt-to-geojson": "^0.0.5", | ||||||
|         "name-suggestion-index": "^6.0.20240422", |         "name-suggestion-index": "^6.0.20240422", | ||||||
|         "npm": "^10.7.0", |         "npm": "^10.7.0", | ||||||
|         "opening_hours": "^3.6.0", |         "opening_hours": "^3.6.0", | ||||||
|         "osm-auth": "^2.5.0", |         "osm-auth": "^2.5.0", | ||||||
|         "osmtogeojson": "^3.0.0-beta.5", |         "osmtogeojson": "^3.0.0-beta.5", | ||||||
|         "panoramax-js": "^0.1.7", |         "panoramax-js": "^0.3.6", | ||||||
|         "panzoom": "^9.4.3", |         "panzoom": "^9.4.3", | ||||||
|         "papaparse": "^5.3.1", |         "papaparse": "^5.3.1", | ||||||
|         "pg": "^8.11.3", |         "pg": "^8.11.3", | ||||||
|  | @ -13146,9 +13146,9 @@ | ||||||
|       "license": "MIT" |       "license": "MIT" | ||||||
|     }, |     }, | ||||||
|     "node_modules/mvt-to-geojson": { |     "node_modules/mvt-to-geojson": { | ||||||
|       "version": "0.0.2", |       "version": "0.0.5", | ||||||
|       "resolved": "https://registry.npmjs.org/mvt-to-geojson/-/mvt-to-geojson-0.0.2.tgz", |       "resolved": "https://registry.npmjs.org/mvt-to-geojson/-/mvt-to-geojson-0.0.5.tgz", | ||||||
|       "integrity": "sha512-DLi1Hgowqy6ygOUIuOhtI5RLdph9VpQSP6Ct3qbOY/y0dSTBjTvpIXgbK3J0XSO9feBRrhjcQAMkzOVD/KkuDA==", |       "integrity": "sha512-IG4bJJP9nxY/9LenWBY0yi5SEv9a1G06trP5b4Tg01LCrzB32US/FO9bygJr7c+ZVbt175AzBwJiiawaxfLTbA==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@types/geojson": "^7946.0.14", |         "@types/geojson": "^7946.0.14", | ||||||
|         "pbf": "^3.2.1" |         "pbf": "^3.2.1" | ||||||
|  | @ -16003,9 +16003,9 @@ | ||||||
|       "license": "MIT" |       "license": "MIT" | ||||||
|     }, |     }, | ||||||
|     "node_modules/panoramax-js": { |     "node_modules/panoramax-js": { | ||||||
|       "version": "0.1.7", |       "version": "0.3.6", | ||||||
|       "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.7.tgz", |       "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.3.6.tgz", | ||||||
|       "integrity": "sha512-G5m0cs+kODGyxmuLI06m+BcQecey2d6zhk+bajUMTkeXqvIIxP+CUS6NKnmN0WyIntd4q91gdGJeOR0Q2I/jeg==", |       "integrity": "sha512-CRdXwh91H6chd1PYptG070ukx+S6IkVaUeQVG91ySevoJoCYOuBT65qkMhRo49X2um1nGcs9UqolW90R57875g==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@ogcapi-js/features": "^1.1.1", |         "@ogcapi-js/features": "^1.1.1", | ||||||
|         "@ogcapi-js/shared": "^1.1.1", |         "@ogcapi-js/shared": "^1.1.1", | ||||||
|  | @ -30241,9 +30241,9 @@ | ||||||
|       "version": "1.0.0" |       "version": "1.0.0" | ||||||
|     }, |     }, | ||||||
|     "mvt-to-geojson": { |     "mvt-to-geojson": { | ||||||
|       "version": "0.0.2", |       "version": "0.0.5", | ||||||
|       "resolved": "https://registry.npmjs.org/mvt-to-geojson/-/mvt-to-geojson-0.0.2.tgz", |       "resolved": "https://registry.npmjs.org/mvt-to-geojson/-/mvt-to-geojson-0.0.5.tgz", | ||||||
|       "integrity": "sha512-DLi1Hgowqy6ygOUIuOhtI5RLdph9VpQSP6Ct3qbOY/y0dSTBjTvpIXgbK3J0XSO9feBRrhjcQAMkzOVD/KkuDA==", |       "integrity": "sha512-IG4bJJP9nxY/9LenWBY0yi5SEv9a1G06trP5b4Tg01LCrzB32US/FO9bygJr7c+ZVbt175AzBwJiiawaxfLTbA==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@types/geojson": "^7946.0.14", |         "@types/geojson": "^7946.0.14", | ||||||
|         "pbf": "^3.2.1" |         "pbf": "^3.2.1" | ||||||
|  | @ -32074,9 +32074,9 @@ | ||||||
|       "version": "1.0.0" |       "version": "1.0.0" | ||||||
|     }, |     }, | ||||||
|     "panoramax-js": { |     "panoramax-js": { | ||||||
|       "version": "0.1.7", |       "version": "0.3.6", | ||||||
|       "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.1.7.tgz", |       "resolved": "https://registry.npmjs.org/panoramax-js/-/panoramax-js-0.3.6.tgz", | ||||||
|       "integrity": "sha512-G5m0cs+kODGyxmuLI06m+BcQecey2d6zhk+bajUMTkeXqvIIxP+CUS6NKnmN0WyIntd4q91gdGJeOR0Q2I/jeg==", |       "integrity": "sha512-CRdXwh91H6chd1PYptG070ukx+S6IkVaUeQVG91ySevoJoCYOuBT65qkMhRo49X2um1nGcs9UqolW90R57875g==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@ogcapi-js/features": "^1.1.1", |         "@ogcapi-js/features": "^1.1.1", | ||||||
|         "@ogcapi-js/shared": "^1.1.1", |         "@ogcapi-js/shared": "^1.1.1", | ||||||
|  |  | ||||||
|  | @ -200,13 +200,13 @@ | ||||||
|     "maplibre-gl": "^4.1.1", |     "maplibre-gl": "^4.1.1", | ||||||
|     "marked": "^12.0.2", |     "marked": "^12.0.2", | ||||||
|     "monaco-editor": "^0.46.0", |     "monaco-editor": "^0.46.0", | ||||||
|     "mvt-to-geojson": "^0.0.2", |     "mvt-to-geojson": "^0.0.5", | ||||||
|     "name-suggestion-index": "^6.0.20240422", |     "name-suggestion-index": "^6.0.20240422", | ||||||
|     "npm": "^10.7.0", |     "npm": "^10.7.0", | ||||||
|     "opening_hours": "^3.6.0", |     "opening_hours": "^3.6.0", | ||||||
|     "osm-auth": "^2.5.0", |     "osm-auth": "^2.5.0", | ||||||
|     "osmtogeojson": "^3.0.0-beta.5", |     "osmtogeojson": "^3.0.0-beta.5", | ||||||
|     "panoramax-js": "^0.1.7", |     "panoramax-js": "^0.3.6", | ||||||
|     "panzoom": "^9.4.3", |     "panzoom": "^9.4.3", | ||||||
|     "papaparse": "^5.3.1", |     "papaparse": "^5.3.1", | ||||||
|     "pg": "^8.11.3", |     "pg": "^8.11.3", | ||||||
|  |  | ||||||
|  | @ -249,6 +249,13 @@ export class BBox { | ||||||
|         ] |         ] | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     toLngLatFlat(): [number, number, number, number] { | ||||||
|  |         return [ | ||||||
|  |             this.minLon, this.minLat, | ||||||
|  |             this.maxLon, this.maxLat, | ||||||
|  |         ] | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     public asGeojsonCached() { |     public asGeojsonCached() { | ||||||
|         if (this["geojsonCache"] === undefined) { |         if (this["geojsonCache"] === undefined) { | ||||||
|             this["geojsonCache"] = this.asGeoJson({}) |             this["geojsonCache"] = this.asGeoJson({}) | ||||||
|  |  | ||||||
|  | @ -63,7 +63,28 @@ export default class MvtSource implements FeatureSourceForTile, UpdatableFeature | ||||||
|                 return |                 return | ||||||
|             } |             } | ||||||
|             const buffer = await result.arrayBuffer() |             const buffer = await result.arrayBuffer() | ||||||
|             const features = await MvtToGeojson.fromBuffer(buffer, this.x, this.y, this.z) |             const features = MvtToGeojson.fromBuffer(buffer, this.x, this.y, this.z) | ||||||
|  |             for (const feature of features) { | ||||||
|  |                 const properties = feature.properties | ||||||
|  |                 if(!properties["osm_type"]){ | ||||||
|  |                     continue | ||||||
|  |                 } | ||||||
|  |                 let type: string = "node" | ||||||
|  |                 switch (properties["osm_type"]) { | ||||||
|  |                     case "N": | ||||||
|  |                         type = "node" | ||||||
|  |                         break | ||||||
|  |                     case "W": | ||||||
|  |                         type = "way" | ||||||
|  |                         break | ||||||
|  |                     case "R": | ||||||
|  |                         type = "relation" | ||||||
|  |                         break | ||||||
|  |                 } | ||||||
|  |                 properties["id"] = type + "/" + properties["osm_id"] | ||||||
|  |                 delete properties["osm_id"] | ||||||
|  |                 delete properties["osm_type"] | ||||||
|  |             } | ||||||
|             this._features.setData(features) |             this._features.setData(features) | ||||||
|         } catch (e) { |         } catch (e) { | ||||||
|             console.error("Could not download MVT " + this._url + " tile due to", e) |             console.error("Could not download MVT " + this._url + " tile due to", e) | ||||||
|  |  | ||||||
|  | @ -92,6 +92,13 @@ export class GeoOperations { | ||||||
|         return turf.distance(lonlat0, lonlat1, { units: "meters" }) |         return turf.distance(lonlat0, lonlat1, { units: "meters" }) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * Starting on `from`, travels `distance` meters in the direction of the `bearing` (default: 90) | ||||||
|  |      */ | ||||||
|  |     static destination(from: Coord | [number,number],distance: number, bearing: number = 90): [number,number]{ | ||||||
|  |         return <[number,number]> turf.destination(from, distance, bearing, {units: "meters"}).geometry.coordinates | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     static convexHull(featureCollection, options: { concavity?: number }) { |     static convexHull(featureCollection, options: { concavity?: number }) { | ||||||
|         return turf.convex(featureCollection, options) |         return turf.convex(featureCollection, options) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -17,7 +17,8 @@ export interface ProvidedImage { | ||||||
|      */ |      */ | ||||||
|     rotation?: number |     rotation?: number | ||||||
|     lat?: number, |     lat?: number, | ||||||
|     lon?: number |     lon?: number, | ||||||
|  |     host?: string | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export default abstract class ImageProvider { | export default abstract class ImageProvider { | ||||||
|  | @ -25,7 +26,7 @@ export default abstract class ImageProvider { | ||||||
| 
 | 
 | ||||||
|     public abstract readonly name: string |     public abstract readonly name: string | ||||||
| 
 | 
 | ||||||
|     public abstract SourceIcon(id?: string, location?: { lon: number; lat: number }): BaseUIElement |     public abstract SourceIcon(img?: {id: string, url: string, host?: string}, location?: { lon: number; lat: number }): BaseUIElement | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  |  | ||||||
|  | @ -118,13 +118,14 @@ export class Mapillary extends ImageProvider { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     SourceIcon( |     SourceIcon( | ||||||
|         id: string, |         img:  {id: string, url: string}, | ||||||
|         location?: { |         location?: { | ||||||
|             lon: number |             lon: number | ||||||
|             lat: number |             lat: number | ||||||
|         } |         } | ||||||
|     ): BaseUIElement { |     ): BaseUIElement { | ||||||
|         let url: string = undefined |         let url: string = undefined | ||||||
|  |         const id = img.id | ||||||
|         if (id) { |         if (id) { | ||||||
|             url = Mapillary.createLink(location, 16, "" + id) |             url = Mapillary.createLink(location, 16, "" + id) | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -7,6 +7,9 @@ import { LicenseInfo } from "./LicenseInfo" | ||||||
| import { GeoOperations } from "../GeoOperations" | import { GeoOperations } from "../GeoOperations" | ||||||
| import Constants from "../../Models/Constants" | import Constants from "../../Models/Constants" | ||||||
| import { Store, Stores, UIEventSource } from "../UIEventSource" | import { Store, Stores, UIEventSource } from "../UIEventSource" | ||||||
|  | import SvelteUIElement from "../../UI/Base/SvelteUIElement" | ||||||
|  | import Panoramax_bw from "../../assets/svg/Panoramax_bw.svelte" | ||||||
|  | import Link from "../../UI/Base/Link" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| export default class PanoramaxImageProvider extends ImageProvider { | export default class PanoramaxImageProvider extends ImageProvider { | ||||||
|  | @ -14,13 +17,18 @@ export default class PanoramaxImageProvider extends ImageProvider { | ||||||
|     public static readonly singleton = new PanoramaxImageProvider() |     public static readonly singleton = new PanoramaxImageProvider() | ||||||
|     private static readonly xyz = new PanoramaxXYZ() |     private static readonly xyz = new PanoramaxXYZ() | ||||||
|     private static defaultPanoramax = new AuthorizedPanoramax(Constants.panoramax.url, Constants.panoramax.token) |     private static defaultPanoramax = new AuthorizedPanoramax(Constants.panoramax.url, Constants.panoramax.token) | ||||||
|  | 
 | ||||||
|     public defaultKeyPrefixes: string[] = ["panoramax"] |     public defaultKeyPrefixes: string[] = ["panoramax"] | ||||||
|     public readonly name: string = "panoramax" |     public readonly name: string = "panoramax" | ||||||
| 
 | 
 | ||||||
|     private static knownMeta: Record<string, { data: ImageData, time: Date }> = {} |     private static knownMeta: Record<string, { data: ImageData, time: Date }> = {} | ||||||
| 
 | 
 | ||||||
|     public SourceIcon(id?: string, location?: { lon: number; lat: number; }): BaseUIElement { |     public SourceIcon(img?: { id: string, url: string, host?: string }, location?: { lon: number; lat: number; }): BaseUIElement { | ||||||
|         return undefined |         const p = new Panoramax(img.host) | ||||||
|  |         return new Link(new SvelteUIElement(Panoramax_bw), p.createViewLink({ | ||||||
|  |             imageId: img?.id, | ||||||
|  |             location | ||||||
|  |         }), true) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public addKnownMeta(meta: ImageData) { |     public addKnownMeta(meta: ImageData) { | ||||||
|  | @ -35,7 +43,7 @@ export default class PanoramaxImageProvider extends ImageProvider { | ||||||
|     private async getInfoFromMapComplete(id: string): Promise<{ data: ImageData, url: string }> { |     private async getInfoFromMapComplete(id: string): Promise<{ data: ImageData, url: string }> { | ||||||
|         const sequence = "6e702976-580b-419c-8fb3-cf7bd364e6f8" // We always reuse this sequence
 |         const sequence = "6e702976-580b-419c-8fb3-cf7bd364e6f8" // We always reuse this sequence
 | ||||||
|         const url = `https://panoramax.mapcomplete.org/` |         const url = `https://panoramax.mapcomplete.org/` | ||||||
|         const data = await PanoramaxImageProvider.defaultPanoramax.imageInfo(sequence, id) |         const data = await PanoramaxImageProvider.defaultPanoramax.imageInfo(id, sequence) | ||||||
|         return { url, data } |         return { url, data } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -67,10 +75,14 @@ export default class PanoramaxImageProvider extends ImageProvider { | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         const [lon, lat] = GeoOperations.centerpointCoordinates(meta) |         const [lon, lat] = GeoOperations.centerpointCoordinates(meta) | ||||||
|  |         const hd = meta.properties | ||||||
|  |         console.log(">>>",meta) | ||||||
|  |         // const hdUrl = new URL(hd)
 | ||||||
|         return <ProvidedImage>{ |         return <ProvidedImage>{ | ||||||
|             id: meta.id, |             id: meta.id, | ||||||
|             url: makeAbsolute(meta.assets.sd.href), |             url: makeAbsolute(meta.assets.sd.href), | ||||||
|             url_hd: makeAbsolute(meta.assets.hd.href), |             url_hd: makeAbsolute(meta.assets.hd.href), | ||||||
|  |             host: meta["links"].find(l => l.rel === "root")?.href, | ||||||
|             lon, lat, |             lon, lat, | ||||||
|             key: "panoramax", |             key: "panoramax", | ||||||
|             provider: this, |             provider: this, | ||||||
|  | @ -103,8 +115,9 @@ export default class PanoramaxImageProvider extends ImageProvider { | ||||||
|         } |         } | ||||||
|         return undefined |         return undefined | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|     public async ExtractUrls(key: string, value: string): Promise<ProvidedImage[]> { |     public async ExtractUrls(key: string, value: string): Promise<ProvidedImage[]> { | ||||||
|         if(!Panoramax.isId(value)){ |         if (!Panoramax.isId(value)) { | ||||||
|             return undefined |             return undefined | ||||||
|         } |         } | ||||||
|         return [await this.getInfoFor(value).then(r => this.featureToImage(<any>r))] |         return [await this.getInfoFor(value).then(r => this.featureToImage(<any>r))] | ||||||
|  |  | ||||||
|  | @ -10,6 +10,7 @@ import { Point } from "geojson" | ||||||
| import MvtSource from "../FeatureSource/Sources/MvtSource" | import MvtSource from "../FeatureSource/Sources/MvtSource" | ||||||
| import AllImageProviders from "../ImageProviders/AllImageProviders" | import AllImageProviders from "../ImageProviders/AllImageProviders" | ||||||
| import { Imgur } from "../ImageProviders/Imgur" | import { Imgur } from "../ImageProviders/Imgur" | ||||||
|  | import { Panoramax, PanoramaxXYZ } from "panoramax-js/dist" | ||||||
| 
 | 
 | ||||||
| interface ImageFetcher { | interface ImageFetcher { | ||||||
|     /** |     /** | ||||||
|  | @ -102,7 +103,7 @@ class P4CImageFetcher implements ImageFetcher { | ||||||
|                 { |                 { | ||||||
|                     mindate: new Date().getTime() - maxAgeSeconds, |                     mindate: new Date().getTime() - maxAgeSeconds, | ||||||
|                     towardscenter: false, |                     towardscenter: false, | ||||||
|                 } |                 }, | ||||||
|             ) |             ) | ||||||
|         } catch (e) { |         } catch (e) { | ||||||
|             console.log("P4C image fetcher failed with", e) |             console.log("P4C image fetcher failed with", e) | ||||||
|  | @ -163,6 +164,55 @@ class ImagesInLoadedDataFetcher implements ImageFetcher { | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | class ImagesFromPanoramaxFetcher implements ImageFetcher { | ||||||
|  |     private readonly _radius: number | ||||||
|  |     private readonly _panoramax: Panoramax | ||||||
|  |     name: string = "panoramax" | ||||||
|  | 
 | ||||||
|  |     constructor(url?: string, radius: number = 100) { | ||||||
|  |         this._radius = radius | ||||||
|  |         if (url) { | ||||||
|  | 
 | ||||||
|  |             this._panoramax = new Panoramax(url) | ||||||
|  |         } else { | ||||||
|  |             this._panoramax = new PanoramaxXYZ() | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     public async fetchImages(lat: number, lon: number): Promise<P4CPicture[]> { | ||||||
|  | 
 | ||||||
|  |         const bboxObj = new BBox([ | ||||||
|  |             GeoOperations.destination([lon, lat], this._radius * Math.sqrt(2), -45), | ||||||
|  |             GeoOperations.destination([lon, lat], this._radius * Math.sqrt(2), 135), | ||||||
|  |         ]) | ||||||
|  |         const bbox: [number, number, number, number] = bboxObj.toLngLatFlat() | ||||||
|  |         const images = await this._panoramax.search({ bbox, limit: 1000 }) | ||||||
|  | 
 | ||||||
|  |         return images.map(i => { | ||||||
|  |             const [lng, lat] = i.geometry.coordinates | ||||||
|  |             return ({ | ||||||
|  |                 pictureUrl: i.assets.sd.href, | ||||||
|  |                 coordinates: { lng, lat }, | ||||||
|  | 
 | ||||||
|  |                 provider: "panoramax", | ||||||
|  |                 direction: i.properties["view:azimuth"], | ||||||
|  |                 osmTags: { | ||||||
|  |                     "panoramax": i.id, | ||||||
|  |                 }, | ||||||
|  |                 thumbUrl: i.assets.thumb.href, | ||||||
|  |                 date: new Date(i.properties.datetime).getTime(), | ||||||
|  |                 license: i.properties["geovisio:license"], | ||||||
|  |                 author: i.providers.at(-1).name, | ||||||
|  |                 detailsUrl: i.id, | ||||||
|  |                 details: { | ||||||
|  |                     isSpherical: i.properties["exif"]["Xmp.GPano.ProjectionType"] === "equirectangular", | ||||||
|  |                 }, | ||||||
|  |             }) | ||||||
|  |         }) | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| class ImagesFromCacheServerFetcher implements ImageFetcher { | class ImagesFromCacheServerFetcher implements ImageFetcher { | ||||||
|     private readonly _searchRadius: number |     private readonly _searchRadius: number | ||||||
|     public readonly name = "fromCacheServer" |     public readonly name = "fromCacheServer" | ||||||
|  | @ -186,7 +236,7 @@ class ImagesFromCacheServerFetcher implements ImageFetcher { | ||||||
|     async fetchImagesForType( |     async fetchImagesForType( | ||||||
|         targetlat: number, |         targetlat: number, | ||||||
|         targetlon: number, |         targetlon: number, | ||||||
|         type: "lines" | "pois" | "polygons" |         type: "lines" | "pois" | "polygons", | ||||||
|     ): Promise<P4CPicture[]> { |     ): Promise<P4CPicture[]> { | ||||||
|         const { x, y, z } = Tiles.embedded_tile(targetlat, targetlon, 14) |         const { x, y, z } = Tiles.embedded_tile(targetlat, targetlon, 14) | ||||||
| 
 | 
 | ||||||
|  | @ -203,7 +253,7 @@ class ImagesFromCacheServerFetcher implements ImageFetcher { | ||||||
|                 }), |                 }), | ||||||
|                 x, |                 x, | ||||||
|                 y, |                 y, | ||||||
|                 z |                 z, | ||||||
|             ) |             ) | ||||||
|             await src.updateAsync() |             await src.updateAsync() | ||||||
|             return src.features.data |             return src.features.data | ||||||
|  | @ -360,6 +410,8 @@ export class CombinedFetcher { | ||||||
|         this.sources = [ |         this.sources = [ | ||||||
|             new ImagesInLoadedDataFetcher(indexedFeatures, radius), |             new ImagesInLoadedDataFetcher(indexedFeatures, radius), | ||||||
|             new ImagesFromCacheServerFetcher(radius), |             new ImagesFromCacheServerFetcher(radius), | ||||||
|  |             new ImagesFromPanoramaxFetcher(), | ||||||
|  |             new ImagesFromPanoramaxFetcher(Constants.panoramax.url), | ||||||
|             new MapillaryFetcher({ |             new MapillaryFetcher({ | ||||||
|                 panoramas: "no", |                 panoramas: "no", | ||||||
|                 max_images: 25, |                 max_images: 25, | ||||||
|  | @ -375,7 +427,7 @@ export class CombinedFetcher { | ||||||
|         lat: number, |         lat: number, | ||||||
|         lon: number, |         lon: number, | ||||||
|         state: UIEventSource<Record<string, "loading" | "done" | "error">>, |         state: UIEventSource<Record<string, "loading" | "done" | "error">>, | ||||||
|         sink: UIEventSource<P4CPicture[]> |         sink: UIEventSource<P4CPicture[]>, | ||||||
|     ): Promise<void> { |     ): Promise<void> { | ||||||
|         try { |         try { | ||||||
|             const pics = await source.fetchImages(lat, lon) |             const pics = await source.fetchImages(lat, lon) | ||||||
|  | @ -408,7 +460,7 @@ export class CombinedFetcher { | ||||||
| 
 | 
 | ||||||
|     public getImagesAround( |     public getImagesAround( | ||||||
|         lon: number, |         lon: number, | ||||||
|         lat: number |         lat: number, | ||||||
|     ): { |     ): { | ||||||
|         images: Store<P4CPicture[]> |         images: Store<P4CPicture[]> | ||||||
|         state: Store<Record<string, "loading" | "done" | "error">> |         state: Store<Record<string, "loading" | "done" | "error">> | ||||||
|  |  | ||||||
|  | @ -48,6 +48,7 @@ | ||||||
|   import Copyright from "../../assets/svg/Copyright.svelte" |   import Copyright from "../../assets/svg/Copyright.svelte" | ||||||
|   import Pencil from "../../assets/svg/Pencil.svelte" |   import Pencil from "../../assets/svg/Pencil.svelte" | ||||||
|   import Squares2x2 from "@babeard/svelte-heroicons/mini/Squares2x2" |   import Squares2x2 from "@babeard/svelte-heroicons/mini/Squares2x2" | ||||||
|  |   import PanoramaxLink from "./PanoramaxLink.svelte" | ||||||
| 
 | 
 | ||||||
|   export let state: ThemeViewState |   export let state: ThemeViewState | ||||||
|   let userdetails = state.osmConnection.userDetails |   let userdetails = state.osmConnection.userDetails | ||||||
|  | @ -229,6 +230,7 @@ | ||||||
|     <If condition={featureSwitches.featureSwitchEnableLogin}> |     <If condition={featureSwitches.featureSwitchEnableLogin}> | ||||||
|       <OpenIdEditor mapProperties={state.mapProperties} /> |       <OpenIdEditor mapProperties={state.mapProperties} /> | ||||||
|       <OpenJosm {state} /> |       <OpenJosm {state} /> | ||||||
|  |       <PanoramaxLink large={false} mapProperties={state.mapProperties} /> | ||||||
|       <MapillaryLink large={false} mapProperties={state.mapProperties} /> |       <MapillaryLink large={false} mapProperties={state.mapProperties} /> | ||||||
|     </If> |     </If> | ||||||
|   </div> |   </div> | ||||||
|  |  | ||||||
							
								
								
									
										40
									
								
								src/UI/BigComponents/PanoramaxLink.svelte
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/UI/BigComponents/PanoramaxLink.svelte
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | ||||||
|  | <script lang="ts"> | ||||||
|  |   import Translations from "../i18n/Translations" | ||||||
|  |   import { Store } from "../../Logic/UIEventSource" | ||||||
|  |   import Tr from "../Base/Tr.svelte" | ||||||
|  |   import Mapillary_black from "../../assets/svg/Mapillary_black.svelte" | ||||||
|  |   import { twMerge } from "tailwind-merge" | ||||||
|  |   import { PanoramaxXYZ, Panoramax } from "panoramax-js/dist" | ||||||
|  |   import Panoramax_bw from "../../assets/svg/Panoramax_bw.svelte" | ||||||
|  |   import {default as Panoramax_svg} from "../../assets/svg/Panoramax.svelte" | ||||||
|  | 
 | ||||||
|  |   /* | ||||||
|  |       A subtleButton which opens panoramax in a new tab at the current location | ||||||
|  |        */ | ||||||
|  | 
 | ||||||
|  |   export let host: Panoramax = new PanoramaxXYZ() | ||||||
|  |   export let mapProperties: { | ||||||
|  |     readonly zoom: Store<number> | ||||||
|  |     readonly location: Store<{ lon: number; lat: number }> | ||||||
|  |   } | ||||||
|  |   let location = mapProperties.location | ||||||
|  |   let zoom = mapProperties.zoom | ||||||
|  |   let href = location.mapD(location => | ||||||
|  |     host.createViewLink({ | ||||||
|  |       location, | ||||||
|  |       zoom: zoom.data, | ||||||
|  |     }), [zoom]) | ||||||
|  |   export let large: boolean = true | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <a class="flex items-center" href={$href} target="_blank"> | ||||||
|  |   <Panoramax_svg class={twMerge("shrink-0", large ? "m-2 mr-4 h-12 w-12" : "h-5 w-5 pr-1")} /> | ||||||
|  |   {#if large} | ||||||
|  |     <div class="flex flex-col"> | ||||||
|  |       <Tr t={Translations.t.general.attribution.openPanoramax} /> | ||||||
|  |       <Tr cls="subtle" t={Translations.t.general.attribution.panoramaxHelp} /> | ||||||
|  |     </div> | ||||||
|  |   {:else} | ||||||
|  |     <Tr t={Translations.t.general.attribution.openPanoramax} /> | ||||||
|  |   {/if} | ||||||
|  | </a> | ||||||
|  | @ -16,7 +16,7 @@ | ||||||
|   let license: Store<LicenseInfo> = UIEventSource.FromPromise( |   let license: Store<LicenseInfo> = UIEventSource.FromPromise( | ||||||
|     image.provider?.DownloadAttribution(image) |     image.provider?.DownloadAttribution(image) | ||||||
|   ) |   ) | ||||||
|   let icon = image.provider?.SourceIcon(image.id) |   let icon = image.provider?.SourceIcon(image) | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| {#if $license !== undefined} | {#if $license !== undefined} | ||||||
|  |  | ||||||
|  | @ -130,7 +130,7 @@ | ||||||
|     for (const f of features) { |     for (const f of features) { | ||||||
|       bbox = bbox.unionWith(BBox.get(f)) |       bbox = bbox.unionWith(BBox.get(f)) | ||||||
|     } |     } | ||||||
|     mapProperties.maxbounds.set(bbox.pad(1.1)) |     mapProperties.maxbounds.set(bbox.pad(4)) | ||||||
|   }) |   }) | ||||||
| 
 | 
 | ||||||
|   ) |   ) | ||||||
|  |  | ||||||
|  | @ -1488,7 +1488,6 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | ||||||
|         if (!element) { |         if (!element) { | ||||||
|             return |             return | ||||||
|         } |         } | ||||||
|         console.log("Scrolling into view:", element) |  | ||||||
|         // Is the element completely in the view?
 |         // Is the element completely in the view?
 | ||||||
|         const parentRect = Utils.findParentWithScrolling(element)?.getBoundingClientRect() |         const parentRect = Utils.findParentWithScrolling(element)?.getBoundingClientRect() | ||||||
|         if (!parentRect) { |         if (!parentRect) { | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| <script> | <script> | ||||||
| export let color = "#000000" | export let color = "#000000" | ||||||
| </script> | </script> | ||||||
|  <svg {...$$restProps} on:click on:mouseover on:mouseenter on:mouseleave on:keydown on:focus    width="375px"    height="375px"    viewBox="0 0 375 375"    version="1.1"    id="svg1"    sodipodi:docname="circle.svg"    inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"    xmlns="http://www.w3.org/2000/svg"    xmlns:svg="http://www.w3.org/2000/svg">   <defs      id="defs1" />   <sodipodi:namedview      id="namedview1"      pagecolor="#505050"      bordercolor="#eeeeee"      borderopacity="1"      inkscape:showpageshadow="0"      inkscape:pageopacity="0"      inkscape:pagecheckerboard="0"      inkscape:deskcolor="#d1d1d1"      inkscape:zoom="2.056"      inkscape:cx="187.5"      inkscape:cy="187.5"      inkscape:window-width="1920"      inkscape:window-height="995"      inkscape:window-x="0"      inkscape:window-y="0"      inkscape:window-maximized="1"      inkscape:current-layer="svg1" />   <path      style="fill:{color}"      class="selectable"      d="M 375,187.5 C 375,291.05469 291.05469,375 187.5,375 83.945312,375 0,291.05469 0,187.5 0,83.945312 83.945312,0 187.5,0 291.05469,0 375,83.945312 375,187.5 Z m 0,0"      id="path1" /> </svg>  |  <svg {...$$restProps} on:click on:mouseover on:mouseenter on:mouseleave on:keydown on:focus    width="375px"    height="375px"    viewBox="0 0 375 375"    version="1.1"    id="svg1"    sodipodi:docname="circle.svg"    inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"    xmlns="http://www.w3.org/2000/svg"    xmlns:svg="http://www.w3.org/2000/svg">   <defs      id="defs1" />   <sodipodi:namedview      id="namedview1"      pagecolor="#505050"      bordercolor="#eeeeee"      borderopacity="1"      inkscape:showpageshadow="0"      inkscape:pageopacity="0"      inkscape:pagecheckerboard="0"      inkscape:deskcolor="#d1d1d1"      inkscape:zoom="2.056"      inkscape:cx="187.5"      inkscape:cy="187.5"      inkscape:window-width="1920"      inkscape:window-height="995"      inkscape:window-x="0"      inkscape:window-y="0"      inkscape:window-maximized="1"      inkscape:current-layer="svg1" />   <path      style="fill:{color};"      class="selectable"      d="M 375,187.5 C 375,291.05469 291.05469,375 187.5,375 83.945312,375 0,291.05469 0,187.5 0,83.945312 83.945312,0 187.5,0 291.05469,0 375,83.945312 375,187.5 Z m 0,0"      id="path1" /> </svg>  | ||||||
							
								
								
									
										4
									
								
								src/assets/svg/Panoramax.svelte
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/assets/svg/Panoramax.svelte
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								src/assets/svg/Panoramax_bw.svelte
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/assets/svg/Panoramax_bw.svelte
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue