| 
									
										
										
										
											2023-11-06 18:11:01 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  |  | <html> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | <head> | 
					
						
							|  |  |  |  |   <meta charset="utf-8"/> | 
					
						
							|  |  |  |  |   <meta http-equiv="pragma" content="no-cache"> | 
					
						
							|  |  |  |  |   <meta http-equiv="cache-control" content="no-cache"> | 
					
						
							|  |  |  |  |   <meta http-equiv="expires" content="0"> | 
					
						
							|  |  |  |  |   <title>hello-jsmap</title> | 
					
						
							| 
									
										
										
										
											2024-04-29 09:15:35 +08:00
										 |  |  |  |   <script src="http://192.168.192.201:7024/joysuch/jsmap/jsmap.js" type="text/javascript"></script> | 
					
						
							|  |  |  |  |   <link type="text/css" href="http://192.168.192.201:7024/joysuch/jsmap/jsmap.css" rel="stylesheet"/> | 
					
						
							| 
									
										
										
										
											2023-11-06 18:11:01 +08:00
										 |  |  |  |   <!--  <script src="http://mapdemo.joysuch.com/lib/jsmap/jsmap.js" type="text/javascript"></script>--> | 
					
						
							|  |  |  |  |   <!--  <link type="text/css" href="http://mapdemo.joysuch.com/lib/jsmap/jsmap.css" rel="stylesheet"/>--> | 
					
						
							| 
									
										
										
										
											2024-04-29 09:15:35 +08:00
										 |  |  |  |   <link rel="stylesheet" href="http://192.168.192.201:7024/joysuch/LocalAssets/css/animation/pop.css"> | 
					
						
							|  |  |  |  |   <link rel="stylesheet" href="http://192.168.192.201:7024/joysuch/LocalAssets/css/animation/loading.css"> | 
					
						
							|  |  |  |  |   <link rel="stylesheet" href="http://192.168.192.201:7024/joysuch/LocalAssets/css/dom.css"> | 
					
						
							| 
									
										
										
										
											2023-11-06 18:11:01 +08:00
										 |  |  |  |   <style> | 
					
						
							|  |  |  |  |     .jsmap-animation-point, | 
					
						
							|  |  |  |  |     .jsmap-animation-point:after, | 
					
						
							|  |  |  |  |     .jsmap-animation-point:before, | 
					
						
							|  |  |  |  |     .jsmap-animation-point p, | 
					
						
							|  |  |  |  |     .jsmap-animation-point p:after, | 
					
						
							|  |  |  |  |     .jsmap-animation-point p:before { | 
					
						
							|  |  |  |  |       margin: 0; | 
					
						
							|  |  |  |  |       padding: 0; | 
					
						
							|  |  |  |  |       -webkit-box-sizing: border-box; | 
					
						
							|  |  |  |  |       -moz-box-sizing: border-box; | 
					
						
							|  |  |  |  |       -o-box-sizing: border-box; | 
					
						
							|  |  |  |  |       -ms-box-sizing: border-box; | 
					
						
							|  |  |  |  |       box-sizing: border-box; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     .jsmap-animation-point { | 
					
						
							|  |  |  |  |       width: 10px; | 
					
						
							|  |  |  |  |       height: 10px; | 
					
						
							|  |  |  |  |       border-radius: 50%; | 
					
						
							|  |  |  |  |       border: 1px solid hsla(0, 0%, 100%, 0.5); | 
					
						
							|  |  |  |  |       cursor: pointer; | 
					
						
							|  |  |  |  |       color: #0ff; | 
					
						
							|  |  |  |  |       background: currentColor; | 
					
						
							|  |  |  |  |       z-index: 3; | 
					
						
							|  |  |  |  |       left: 50%; | 
					
						
							|  |  |  |  |       top: 50%; | 
					
						
							|  |  |  |  |       -webkit-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       -moz-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       -o-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       -ms-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       box-shadow: 0 0 2em currentColor, 0 0 0.5em currentColor; | 
					
						
							|  |  |  |  |       position: absolute; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     .jsmap-animation-point:after, | 
					
						
							|  |  |  |  |     .jsmap-animation-point:before, | 
					
						
							|  |  |  |  |     .jsmap-animation-point p:after, | 
					
						
							|  |  |  |  |     .jsmap-animation-point p:before { | 
					
						
							|  |  |  |  |       content: ""; | 
					
						
							|  |  |  |  |       position: absolute; | 
					
						
							|  |  |  |  |       width: 100%; | 
					
						
							|  |  |  |  |       height: 100%; | 
					
						
							|  |  |  |  |       left: 50%; | 
					
						
							|  |  |  |  |       top: 50%; | 
					
						
							|  |  |  |  |       border-radius: 50%; | 
					
						
							|  |  |  |  |       -webkit-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       -moz-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       -o-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       -ms-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     .jsmap-animation-point:after, | 
					
						
							|  |  |  |  |     .jsmap-animation-point:before { | 
					
						
							|  |  |  |  |       border: 1px solid; | 
					
						
							|  |  |  |  |       -webkit-animation: jsmap-mapAni 1s ease infinite; | 
					
						
							|  |  |  |  |       -moz-animation: jsmap-mapAni 1s ease infinite; | 
					
						
							|  |  |  |  |       -o-animation: jsmap-mapAni 1s ease infinite; | 
					
						
							|  |  |  |  |       -ms-animation: jsmap-mapAni 1s ease infinite; | 
					
						
							|  |  |  |  |       animation: jsmap-mapAni 1s ease infinite; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     .jsmap-animation-point p:before { | 
					
						
							|  |  |  |  |       border: 1px solid; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     .jsmap-animation-point p { | 
					
						
							|  |  |  |  |       position: absolute; | 
					
						
							|  |  |  |  |       left: 50%; | 
					
						
							|  |  |  |  |       top: 50%; | 
					
						
							|  |  |  |  |       width: 0; | 
					
						
							|  |  |  |  |       height: 0; | 
					
						
							|  |  |  |  |       border-radius: 50%; | 
					
						
							|  |  |  |  |       -webkit-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       -moz-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       -o-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       -ms-transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       transform: translate(-50%, -50%); | 
					
						
							|  |  |  |  |       -webkit-animation: jsmap-mapAni 2s ease infinite; | 
					
						
							|  |  |  |  |       -moz-animation: jsmap-mapAni 2s ease infinite; | 
					
						
							|  |  |  |  |       -o-animation: jsmap-mapAni 2s ease infinite; | 
					
						
							|  |  |  |  |       -ms-animation: jsmap-mapAni 2s ease infinite; | 
					
						
							|  |  |  |  |       animation: jsmap-mapAni 2s ease infinite; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     @-webkit-keyframes jsmap-mapAni { | 
					
						
							|  |  |  |  |       0% { | 
					
						
							|  |  |  |  |         width: 0; | 
					
						
							|  |  |  |  |         height: 0; | 
					
						
							|  |  |  |  |         opacity: 1; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=1); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       25% { | 
					
						
							|  |  |  |  |         width: 12px; | 
					
						
							|  |  |  |  |         height: 12px; | 
					
						
							|  |  |  |  |         opacity: 0.7; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=70); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       50% { | 
					
						
							|  |  |  |  |         width: 20px; | 
					
						
							|  |  |  |  |         height: 20px; | 
					
						
							|  |  |  |  |         opacity: 0.5; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=50); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       75% { | 
					
						
							|  |  |  |  |         width: 30px; | 
					
						
							|  |  |  |  |         height: 30px; | 
					
						
							|  |  |  |  |         opacity: 0.2; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=20); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       to { | 
					
						
							|  |  |  |  |         width: 40px; | 
					
						
							|  |  |  |  |         height: 40px; | 
					
						
							|  |  |  |  |         opacity: 0; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=0); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     @-moz-keyframes jsmap-mapAni { | 
					
						
							|  |  |  |  |       0% { | 
					
						
							|  |  |  |  |         width: 0; | 
					
						
							|  |  |  |  |         height: 0; | 
					
						
							|  |  |  |  |         opacity: 1; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=1); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       25% { | 
					
						
							|  |  |  |  |         width: 12px; | 
					
						
							|  |  |  |  |         height: 12px; | 
					
						
							|  |  |  |  |         opacity: 0.7; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=70); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       50% { | 
					
						
							|  |  |  |  |         width: 20px; | 
					
						
							|  |  |  |  |         height: 20px; | 
					
						
							|  |  |  |  |         opacity: 0.5; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=50); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       75% { | 
					
						
							|  |  |  |  |         width: 30px; | 
					
						
							|  |  |  |  |         height: 30px; | 
					
						
							|  |  |  |  |         opacity: 0.2; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=20); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       to { | 
					
						
							|  |  |  |  |         width: 40px; | 
					
						
							|  |  |  |  |         height: 40px; | 
					
						
							|  |  |  |  |         opacity: 0; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=0); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     @-o-keyframes jsmap-mapAni { | 
					
						
							|  |  |  |  |       0% { | 
					
						
							|  |  |  |  |         width: 0; | 
					
						
							|  |  |  |  |         height: 0; | 
					
						
							|  |  |  |  |         opacity: 1; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=1); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       25% { | 
					
						
							|  |  |  |  |         width: 12px; | 
					
						
							|  |  |  |  |         height: 12px; | 
					
						
							|  |  |  |  |         opacity: 0.7; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=70); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       50% { | 
					
						
							|  |  |  |  |         width: 20px; | 
					
						
							|  |  |  |  |         height: 20px; | 
					
						
							|  |  |  |  |         opacity: 0.5; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=50); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       75% { | 
					
						
							|  |  |  |  |         width: 30px; | 
					
						
							|  |  |  |  |         height: 30px; | 
					
						
							|  |  |  |  |         opacity: 0.2; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=20); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       to { | 
					
						
							|  |  |  |  |         width: 40px; | 
					
						
							|  |  |  |  |         height: 40px; | 
					
						
							|  |  |  |  |         opacity: 0; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=0); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     @-ms-keyframes jsmap-mapAni { | 
					
						
							|  |  |  |  |       0% { | 
					
						
							|  |  |  |  |         width: 0; | 
					
						
							|  |  |  |  |         height: 0; | 
					
						
							|  |  |  |  |         opacity: 1; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=1); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       25% { | 
					
						
							|  |  |  |  |         width: 12px; | 
					
						
							|  |  |  |  |         height: 12px; | 
					
						
							|  |  |  |  |         opacity: 0.7; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=70); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       50% { | 
					
						
							|  |  |  |  |         width: 20px; | 
					
						
							|  |  |  |  |         height: 20px; | 
					
						
							|  |  |  |  |         opacity: 0.5; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=50); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       75% { | 
					
						
							|  |  |  |  |         width: 30px; | 
					
						
							|  |  |  |  |         height: 30px; | 
					
						
							|  |  |  |  |         opacity: 0.2; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=20); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       to { | 
					
						
							|  |  |  |  |         width: 40px; | 
					
						
							|  |  |  |  |         height: 40px; | 
					
						
							|  |  |  |  |         opacity: 0; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=0); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     @keyframes jsmap-mapAni { | 
					
						
							|  |  |  |  |       0% { | 
					
						
							|  |  |  |  |         width: 0; | 
					
						
							|  |  |  |  |         height: 0; | 
					
						
							|  |  |  |  |         opacity: 1; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=1); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       25% { | 
					
						
							|  |  |  |  |         width: 12px; | 
					
						
							|  |  |  |  |         height: 12px; | 
					
						
							|  |  |  |  |         opacity: 0.7; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=70); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       50% { | 
					
						
							|  |  |  |  |         width: 20px; | 
					
						
							|  |  |  |  |         height: 20px; | 
					
						
							|  |  |  |  |         opacity: 0.5; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=50); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       75% { | 
					
						
							|  |  |  |  |         width: 30px; | 
					
						
							|  |  |  |  |         height: 30px; | 
					
						
							|  |  |  |  |         opacity: 0.2; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=20); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       to { | 
					
						
							|  |  |  |  |         width: 40px; | 
					
						
							|  |  |  |  |         height: 40px; | 
					
						
							|  |  |  |  |         opacity: 0; | 
					
						
							|  |  |  |  |         filter: alpha(opacity=0); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   </style> | 
					
						
							|  |  |  |  | </head> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | <body> | 
					
						
							|  |  |  |  | <div id='mapContainer'></div> | 
					
						
							|  |  |  |  | <!--<button id="addMarker" onclick="add()">添加DOM标注</button>--> | 
					
						
							|  |  |  |  | <!--<button id="removeMarker" onclick="remove()">移除DOM标注</button>--> | 
					
						
							|  |  |  |  | <select name="markerArea" id="markerArea" style="display: none;" onclick="changeMarker()"></select> | 
					
						
							|  |  |  |  | <div id="setProperty" style="display: none;" onclick="property()"> | 
					
						
							|  |  |  |  |   <form oninput="handleInput()"> | 
					
						
							|  |  |  |  |     <p>图标ID:<input type="text" class="ID" readonly/></p> | 
					
						
							|  |  |  |  |     <p>楼层:<input type="text" class="floor" readonly/></p> | 
					
						
							|  |  |  |  |     <p>坐标位置:<input type="text" class="position" readonly/></p> | 
					
						
							|  |  |  |  |     <div id="gradient">偏移: | 
					
						
							|  |  |  |  |       <p>x:<input type="number" id="x轴"/></p> | 
					
						
							|  |  |  |  |       <p>y:<input type="number" id="y轴"/></p> | 
					
						
							|  |  |  |  |     </div> | 
					
						
							|  |  |  |  |     <p>是否显示: | 
					
						
							|  |  |  |  |       <label for="show"> | 
					
						
							|  |  |  |  |         显示:<input type="radio" id="show" name="toggle"/> | 
					
						
							|  |  |  |  |       </label> | 
					
						
							|  |  |  |  |       <label for="hide"> | 
					
						
							|  |  |  |  |         隐藏:<input type="radio" id="hide" name="toggle"/> | 
					
						
							|  |  |  |  |       </label> | 
					
						
							|  |  |  |  |     </p> | 
					
						
							|  |  |  |  |     <p>深度检测: | 
					
						
							|  |  |  |  |       <label for="on"> | 
					
						
							|  |  |  |  |         开:<input type="radio" id="on" name="depth"/> | 
					
						
							|  |  |  |  |       </label> | 
					
						
							|  |  |  |  |       <label for="off"> | 
					
						
							|  |  |  |  |         关:<input type="radio" id="off" name="depth"/> | 
					
						
							|  |  |  |  |       </label> | 
					
						
							|  |  |  |  |     </p> | 
					
						
							|  |  |  |  |     <div id="close">x</div> | 
					
						
							|  |  |  |  |     <p><span id="changeImg">更换内容</span></p> | 
					
						
							|  |  |  |  |   </form> | 
					
						
							|  |  |  |  | </div> | 
					
						
							|  |  |  |  | <script type="text/javascript"> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //定义全局map变量 | 
					
						
							|  |  |  |  |   var map = null; | 
					
						
							|  |  |  |  |   //定义地图ID变量 | 
					
						
							|  |  |  |  |   var mapID = '100930'; | 
					
						
							|  |  |  |  |   //定义循环的起始变量 | 
					
						
							|  |  |  |  |   var i = 0; | 
					
						
							|  |  |  |  |   //创建循环的终止变量 | 
					
						
							|  |  |  |  |   var max = 0; | 
					
						
							|  |  |  |  |   //创建存储标注的数组 | 
					
						
							|  |  |  |  |   var markerArr = []; | 
					
						
							|  |  |  |  |   //获取各个属性标签 | 
					
						
							|  |  |  |  |   var propertyInput = document.querySelectorAll('#setProperty>form input'); | 
					
						
							|  |  |  |  |   //记录当前所选的Marker | 
					
						
							|  |  |  |  |   var currentMarker = null; | 
					
						
							|  |  |  |  |   //创建文档碎片 | 
					
						
							|  |  |  |  |   var fragment = document.createDocumentFragment(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //定义点标注全局变量 | 
					
						
							|  |  |  |  |   var domMarker = null; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   window.onload = function () { | 
					
						
							|  |  |  |  |     //加载地图 | 
					
						
							|  |  |  |  |     openMap(); | 
					
						
							|  |  |  |  |   }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   window.addEventListener('unload', function (e) { | 
					
						
							|  |  |  |  |     //销毁地图 | 
					
						
							|  |  |  |  |     map.destroy(); | 
					
						
							|  |  |  |  |     map = null; | 
					
						
							|  |  |  |  |   }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //打开地图 | 
					
						
							|  |  |  |  |   function openMap() { | 
					
						
							|  |  |  |  |     //初始化参数 | 
					
						
							|  |  |  |  |     var mapOptions = { | 
					
						
							|  |  |  |  |       //必要,地图容器 | 
					
						
							|  |  |  |  |       container: 'mapContainer', | 
					
						
							|  |  |  |  |       //必要,地图类型 | 
					
						
							|  |  |  |  |       mapType: jsmap.JSMapType.MAP_3D, | 
					
						
							|  |  |  |  |       //必要,地图路径 | 
					
						
							|  |  |  |  |       // mapServerURL: 'http://mapdemo.joysuch.com', | 
					
						
							| 
									
										
										
										
											2024-04-29 09:15:35 +08:00
										 |  |  |  |       mapServerURL: 'http://192.168.192.201:7024/joysuch/jsmap/data/map', | 
					
						
							| 
									
										
										
										
											2023-11-06 18:11:01 +08:00
										 |  |  |  |       openingAnimation: false, | 
					
						
							|  |  |  |  |       enableLighting: true, | 
					
						
							|  |  |  |  |       enableShadows: true, | 
					
						
							|  |  |  |  |       viewOptions: { | 
					
						
							|  |  |  |  |         center: { | 
					
						
							|  |  |  |  |           x: 119.65057611465456, | 
					
						
							|  |  |  |  |           y: 39.93527621050255, | 
					
						
							|  |  |  |  |           z: 0.016594102424956802 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         }, | 
					
						
							|  |  |  |  |         distance: 370.01629618875734, | 
					
						
							|  |  |  |  |         rotate: 0, | 
					
						
							|  |  |  |  |         tilt: 90 | 
					
						
							|  |  |  |  |       }, | 
					
						
							|  |  |  |  |       imageryProvider: jsmap.JSImageryProviderType.IMAGE_TDT, | 
					
						
							|  |  |  |  |     }; | 
					
						
							|  |  |  |  |     //初始化地图对象 | 
					
						
							|  |  |  |  |     map = new jsmap.JSMap(mapOptions); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     //打开map服务器的地图数据和主题 | 
					
						
							|  |  |  |  |     map.openMapById(mapID); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     //地图加载完成事件 | 
					
						
							|  |  |  |  |     map.on("loadComplete", e => { | 
					
						
							|  |  |  |  |       var compassControl = new jsmap.JSCompassControl({ | 
					
						
							|  |  |  |  |         position: jsmap.JSControlPosition.LEFT_TOP, | 
					
						
							|  |  |  |  |         offset: { | 
					
						
							|  |  |  |  |           x: 10, | 
					
						
							|  |  |  |  |           y: 20 | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |       }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       var zoomControl = new jsmap.JSZoomControl({ | 
					
						
							|  |  |  |  |         position: jsmap.JSControlPosition.LEFT_TOP, | 
					
						
							|  |  |  |  |         offset: { | 
					
						
							|  |  |  |  |           x: 40, | 
					
						
							|  |  |  |  |           y: 10 | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |       }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |       if (document.documentElement.clientWidth >= 600) { | 
					
						
							|  |  |  |  |         map.addControl(compassControl); | 
					
						
							|  |  |  |  |         map.addControl(zoomControl); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     map.on('mapClickNode', event => { | 
					
						
							|  |  |  |  |       addPointMarker(event); | 
					
						
							|  |  |  |  |     }); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //添加标注 | 
					
						
							|  |  |  |  |   function addPointMarker(event) { | 
					
						
							|  |  |  |  |     remove() | 
					
						
							|  |  |  |  |     setProperty.style.display = "none"; | 
					
						
							|  |  |  |  |     // //标注的X轴坐标取值范围 | 
					
						
							|  |  |  |  |     // var x = Math.random() * (105.20001908346316 - 105.19474256905414) + 105.19474256905414; | 
					
						
							|  |  |  |  |     // //标注的Y轴坐标取值范围 | 
					
						
							|  |  |  |  |     // var y = Math.random() * (37.65154533433473 - 37.649024581292366) + 37.649024581292366; | 
					
						
							|  |  |  |  |     console.info(event) | 
					
						
							|  |  |  |  |     var x = event.eventInfo.coord.x; | 
					
						
							|  |  |  |  |     var y = event.eventInfo.coord.y; | 
					
						
							|  |  |  |  |     var z = event.eventInfo.coord.z; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     domMarker = new jsmap.JSDomMarker({ | 
					
						
							|  |  |  |  |       id: i, | 
					
						
							|  |  |  |  |       position: { | 
					
						
							|  |  |  |  |         x, | 
					
						
							|  |  |  |  |         y, | 
					
						
							|  |  |  |  |         z: 1 | 
					
						
							|  |  |  |  |       }, //坐标 | 
					
						
							|  |  |  |  |       floorId: 1, //楼层id,默认为1(地面) | 
					
						
							|  |  |  |  |       pointerEvents: 'none', | 
					
						
							|  |  |  |  |       content: '<div>' + | 
					
						
							|  |  |  |  |         '<div class="wrapper">' + | 
					
						
							|  |  |  |  |         '<div class="row cf">' + | 
					
						
							|  |  |  |  |         '<div class="span">' + | 
					
						
							|  |  |  |  |         '<div class="location_indicator"></div>' + | 
					
						
							|  |  |  |  |         '</div>' + | 
					
						
							|  |  |  |  |         '</div>' + | 
					
						
							|  |  |  |  |         '</div>' + | 
					
						
							|  |  |  |  |         '</div>', | 
					
						
							|  |  |  |  |       offset: jsmap.JSControlPosition.LEFT_BOTTOM, | 
					
						
							|  |  |  |  |       marginOffset: { | 
					
						
							|  |  |  |  |         x: 0, | 
					
						
							|  |  |  |  |         y: 0 | 
					
						
							|  |  |  |  |       }, | 
					
						
							|  |  |  |  |       properties: { | 
					
						
							|  |  |  |  |         type: 0, | 
					
						
							|  |  |  |  |       },//属性设置 | 
					
						
							|  |  |  |  |       callback: (node) => { | 
					
						
							|  |  |  |  |         console.log(node); | 
					
						
							|  |  |  |  |       } //回调事件 | 
					
						
							|  |  |  |  |     }); | 
					
						
							|  |  |  |  |     map.addMarker(domMarker); | 
					
						
							|  |  |  |  |     //   //创建option标签 | 
					
						
							|  |  |  |  |     //   var option = document.createElement('option'); | 
					
						
							|  |  |  |  |     //   option.value = i; | 
					
						
							|  |  |  |  |     //   option.innerText = `第${i}个DOM标注`; | 
					
						
							|  |  |  |  |     //   fragment.appendChild(option); | 
					
						
							|  |  |  |  |     //   markerArr.push(domMarker); | 
					
						
							|  |  |  |  |     // markerArea.appendChild(fragment); | 
					
						
							|  |  |  |  |     // markerArea.style.display = 'block'; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     i -= 1; | 
					
						
							|  |  |  |  |     window.parent.postMessage({'LONGITUDE': x, 'LATITUDE': y}, '*'); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //移除全部标注 | 
					
						
							|  |  |  |  |   function remove() { | 
					
						
							|  |  |  |  |     setProperty.style.display = "none"; | 
					
						
							|  |  |  |  |     markerArea.style.display = 'none'; | 
					
						
							|  |  |  |  |     markerArea.innerHTML = ''; | 
					
						
							|  |  |  |  |     map.removeAllDomMarker(); | 
					
						
							|  |  |  |  |     markerArr = []; | 
					
						
							|  |  |  |  |     i = 0; | 
					
						
							|  |  |  |  |     max = 0; | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //选择标注 | 
					
						
							|  |  |  |  |   function changeMarker(e) { | 
					
						
							|  |  |  |  |     e = e || window.event; | 
					
						
							|  |  |  |  |     currentMarker = markerArr.find(item => item._id === e.target.value); | 
					
						
							|  |  |  |  |     if (currentMarker !== undefined) { | 
					
						
							|  |  |  |  |       map.flyToMarker(currentMarker); | 
					
						
							|  |  |  |  |       setProperty.style.display = "block"; | 
					
						
							|  |  |  |  |       propertyInput.forEach(item => { | 
					
						
							|  |  |  |  |         if (item.className === 'ID') item.value = currentMarker._id; | 
					
						
							|  |  |  |  |         if (item.className === 'floor') item.value = currentMarker.floorId; | 
					
						
							|  |  |  |  |         if (item.className === 'position') item.value = 'x:' + currentMarker.position.x + ';' + 'y:' + currentMarker.position.y; | 
					
						
							|  |  |  |  |         if (item.id === "show" && currentMarker.show === true) item.checked = true; | 
					
						
							|  |  |  |  |         if (item.id === "x轴") item.value = currentMarker.marginOffset.x; | 
					
						
							|  |  |  |  |         if (item.id === "y轴") item.value = currentMarker.marginOffset.y; | 
					
						
							|  |  |  |  |         if (item.id === "on" && currentMarker.depthTest === true) item.checked = true; | 
					
						
							|  |  |  |  |         if (item.id === "off" && currentMarker.depthTest === false) item.checked = true; | 
					
						
							|  |  |  |  |       }) | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //设置属性事件 | 
					
						
							|  |  |  |  |   function property(e) { | 
					
						
							|  |  |  |  |     e = e || window.event; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     let {id} = e.target; | 
					
						
							|  |  |  |  |     //设置显隐 | 
					
						
							|  |  |  |  |     if (id === 'show') currentMarker.show = true; | 
					
						
							|  |  |  |  |     if (id === 'hide') currentMarker.show = false; | 
					
						
							|  |  |  |  |     //是否开启深度检测 | 
					
						
							|  |  |  |  |     if (id === 'on') currentMarker.depthTest = true; | 
					
						
							|  |  |  |  |     if (id === 'off') currentMarker.depthTest = false; | 
					
						
							|  |  |  |  |     if (id === "changeImg") currentMarker.content = 'DOMMarker'; | 
					
						
							|  |  |  |  |     ; | 
					
						
							|  |  |  |  |     if (id === 'close') setProperty.style.display = "none"; | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //实时修改属性 | 
					
						
							|  |  |  |  |   function handleInput(e) { | 
					
						
							|  |  |  |  |     e = e || window.event; | 
					
						
							|  |  |  |  |     let {id, className, value} = e.target; | 
					
						
							|  |  |  |  |     //修改偏移 | 
					
						
							|  |  |  |  |     currentMarker.marginOffset = { | 
					
						
							|  |  |  |  |       x: id === 'x轴' ? Number(value) : currentMarker.marginOffset.x, | 
					
						
							|  |  |  |  |       y: id === 'y轴' ? Number(value) : currentMarker.marginOffset.y, | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | </script> | 
					
						
							|  |  |  |  | </body> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | </html> |