| 
									
										
										
										
											2023-11-06 18:11:01 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  |  | <html> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | <head> | 
					
						
							|  |  |  |  |   <meta charset="utf-8"/> | 
					
						
							|  |  |  |  |   <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> | 
					
						
							|  |  |  |  | <script type="text/javascript"> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //定义全局map变量 | 
					
						
							|  |  |  |  |   var map = null; | 
					
						
							|  |  |  |  |   //定义地图ID变量 | 
					
						
							|  |  |  |  |   var mapID = '100930'; | 
					
						
							|  |  |  |  |   //定义循环的起始变量 | 
					
						
							|  |  |  |  |   var i = 0; | 
					
						
							|  |  |  |  |   //创建存储标注的数组 | 
					
						
							|  |  |  |  |   var markerArr = []; | 
					
						
							|  |  |  |  |   var markerIDArr = []; | 
					
						
							|  |  |  |  |   //记录当前所选的Marker | 
					
						
							|  |  |  |  |   var currentMarker = null; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //定义点标注全局变量 | 
					
						
							|  |  |  |  |   var circleMarker = null; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //空间查询对象 | 
					
						
							|  |  |  |  |   var spatialQuery = null; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   window.onload = function () { | 
					
						
							|  |  |  |  |     window.addEventListener('message', function (e) { | 
					
						
							|  |  |  |  |       //加载地图 | 
					
						
							|  |  |  |  |       // console.info('地图加载完成') | 
					
						
							|  |  |  |  |       // console.info(mapData) | 
					
						
							|  |  |  |  |       openMap(e.data); | 
					
						
							|  |  |  |  |       add(e.data); | 
					
						
							|  |  |  |  |       // addBox(e.data); | 
					
						
							|  |  |  |  |       addWall(e.data); | 
					
						
							|  |  |  |  |     }); | 
					
						
							|  |  |  |  |   }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   window.addEventListener('unload', function (e) { | 
					
						
							|  |  |  |  |     //销毁地图 | 
					
						
							|  |  |  |  |     map.destroy(); | 
					
						
							|  |  |  |  |     map = null; | 
					
						
							|  |  |  |  |   }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //打开地图 | 
					
						
							|  |  |  |  |   function openMap(mapData) { | 
					
						
							|  |  |  |  |     //初始化参数 | 
					
						
							|  |  |  |  |     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
										 |  |  |  |       mapScaleLevelRange: [15,20], //地图缩放范围,默认[1,24] | 
					
						
							|  |  |  |  |       openingAnimation: false, | 
					
						
							|  |  |  |  |       enableLighting: true, | 
					
						
							|  |  |  |  |       enableShadows: true, | 
					
						
							|  |  |  |  |       viewOptions: { | 
					
						
							|  |  |  |  |         center: { | 
					
						
							|  |  |  |  |           x: mapData.LONGITUDE, | 
					
						
							|  |  |  |  |           y: mapData.LATITUDE, | 
					
						
							|  |  |  |  |           z: 0 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         }, | 
					
						
							|  |  |  |  |         distance: mapData.distance, | 
					
						
							|  |  |  |  |         rotate: mapData.rotate, | 
					
						
							|  |  |  |  |         tilt: mapData.tilt | 
					
						
							|  |  |  |  |       }, | 
					
						
							|  |  |  |  |       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); | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     }); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     spatialQuery = new jsmap.JSSpatialQuery(map); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     map.on('mapClickNode', event => { | 
					
						
							|  |  |  |  |       console.info(event) | 
					
						
							|  |  |  |  |       if(event.properties){ | 
					
						
							|  |  |  |  |         window.parent.postMessage(event.properties,'*') | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     }); | 
					
						
							|  |  |  |  |     map.on('mapRightClickNode', function(event) { | 
					
						
							|  |  |  |  |       if (validStr(event.properties) && event.properties.get('type') === 'majordangersource') { | 
					
						
							|  |  |  |  |         if (validStr(circleMarker)) { | 
					
						
							|  |  |  |  |           map.removeAllCircleMarker(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         map.highlightMarker([]); | 
					
						
							|  |  |  |  |         circleMarker = new jsmap.JSCircleMarker({ | 
					
						
							|  |  |  |  |           id: 'circleMarker', | 
					
						
							|  |  |  |  |           position: new jsmap.JSPoint(event.x, event.y, 0), | 
					
						
							|  |  |  |  |           floorId: 0, | 
					
						
							|  |  |  |  |           color: 'rgba(0,255,255,0.3)', | 
					
						
							|  |  |  |  |           radius: 100, | 
					
						
							|  |  |  |  |           clampToGround: true, | 
					
						
							|  |  |  |  |           circleType: jsmap.JSCircleType.FILL, | 
					
						
							|  |  |  |  |           depthTest: false, | 
					
						
							|  |  |  |  |           show: true, | 
					
						
							|  |  |  |  |           allowPicking: false, | 
					
						
							|  |  |  |  |           displayCondition: new jsmap.JSDisplayCondition(0.0, 1000), | 
					
						
							|  |  |  |  |           properties: { | 
					
						
							|  |  |  |  |             test: 'circleMarker' | 
					
						
							|  |  |  |  |           }, | 
					
						
							|  |  |  |  |           callback: (marker) => { | 
					
						
							|  |  |  |  |             console.log(marker); | 
					
						
							|  |  |  |  |           } | 
					
						
							|  |  |  |  |         }); | 
					
						
							|  |  |  |  |         map.addMarker(circleMarker); | 
					
						
							|  |  |  |  |         let circle = new jsmap.JSCircle({x:event.x,y:event.y,z:2},100); | 
					
						
							|  |  |  |  |         var result = spatialQuery.query({ | 
					
						
							|  |  |  |  |           geometry: circle, | 
					
						
							|  |  |  |  |           spatialQueryMode:jsmap.JSSpatialQueryMode.CONTAIN,//定义空间查询模式:包含关系 | 
					
						
							|  |  |  |  |           markerType:[jsmap.JSMarkerType.ICON_TEXT_MARKER],//查询标注类型 | 
					
						
							|  |  |  |  |           propertiesFilter: (properties) => {//属性过滤条件 | 
					
						
							|  |  |  |  |             return properties && properties.get('type') === 'video'; | 
					
						
							|  |  |  |  |           }, | 
					
						
							|  |  |  |  |         }); | 
					
						
							|  |  |  |  |         console.log('result',result); | 
					
						
							|  |  |  |  |         for (let j = 0; j < result.length; j++) { | 
					
						
							|  |  |  |  |           map.highlightMarker(result[j]); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       // console.log('mapRightClickNode', event); | 
					
						
							|  |  |  |  |       // event.FID: 点击的nodeID | 
					
						
							|  |  |  |  |       // event.centroid: 点击的node的质心 | 
					
						
							|  |  |  |  |       // event.eventInfo:{coord: 地图坐标, eventID:event事件ID} | 
					
						
							|  |  |  |  |       // event.floorId:点击楼层ID | 
					
						
							|  |  |  |  |       // event.mapCoord:地图坐标 | 
					
						
							|  |  |  |  |       // event.node:点击的node | 
					
						
							|  |  |  |  |       // event.nodeType:node的类型,见JSNodeType枚举 | 
					
						
							|  |  |  |  |       // event.properties:node的属性信息 | 
					
						
							|  |  |  |  |       // event.x:地图坐标x | 
					
						
							|  |  |  |  |       // event.y:地图坐标y | 
					
						
							|  |  |  |  |     }); | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  |   function validStr(str) { | 
					
						
							|  |  |  |  |     if (str != null && str != '' && typeof (str) != 'undefined' && str != 'undefined' && str != 0) { return true } | 
					
						
							|  |  |  |  |     return false | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  |   //添加标注 | 
					
						
							|  |  |  |  |   function add(data) { | 
					
						
							|  |  |  |  |     for (let j = 0; j < data.varList.length; j++) { | 
					
						
							|  |  |  |  |       let mapData = data.varList[j]; | 
					
						
							|  |  |  |  |       if (!(validStr(mapData.LONGITUDE) && validStr(mapData.LONGITUDE))){ | 
					
						
							|  |  |  |  |         continue | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       markerIDArr.push(mapData.id) | 
					
						
							|  |  |  |  |       let iconTextMarker = new jsmap.JSIconTextMarker({ | 
					
						
							|  |  |  |  |         id: j, | 
					
						
							|  |  |  |  |         position: { | 
					
						
							|  |  |  |  |           x: Number(mapData.LONGITUDE), | 
					
						
							|  |  |  |  |           y: Number(mapData.LATITUDE), | 
					
						
							|  |  |  |  |           z: 2 | 
					
						
							|  |  |  |  |         }, //坐标 | 
					
						
							|  |  |  |  |         floorId: 1, //楼层id,默认为1(地面) | 
					
						
							|  |  |  |  |         image: mapData.IMAGE_FILE, | 
					
						
							|  |  |  |  |         imageHeight: validStr(data.imageHeight) ? data.imageHeight : 35, //图片高度 | 
					
						
							|  |  |  |  |         imageWidth: validStr(data.imageWidth) ? data.imageWidth : 35,  //图片宽度 | 
					
						
							|  |  |  |  |         offset: jsmap.JSControlPosition.RIGHT_BOTTOM, | 
					
						
							|  |  |  |  |         text: mapData.NAME,//文字 | 
					
						
							|  |  |  |  |         font: 'bold 12px 微软雅黑',//字体 | 
					
						
							|  |  |  |  |         fontColor: '#ff7744',//文字颜色 | 
					
						
							|  |  |  |  |         fontStrokeColor: '#77ddff', //字体描边颜色 | 
					
						
							|  |  |  |  |         fontStrokeWidth: 1, //字体描边宽度 | 
					
						
							|  |  |  |  |         backgroundColor: '#409EFF', //背景色颜色 | 
					
						
							|  |  |  |  |         backgroundRadius: 1, // 背景圆角 | 
					
						
							|  |  |  |  |         backgroundStrokeColor: '#CD5C5C', //背景边线颜色 | 
					
						
							|  |  |  |  |         backgroundStrokeWidth: 1, //背景边线宽度 | 
					
						
							|  |  |  |  |         iconTextType: jsmap.JSIconTextType.TOPTEXT_BOTTOMICON, | 
					
						
							|  |  |  |  |         depthTest: false,//是否开启深度检测 | 
					
						
							|  |  |  |  |         properties: { | 
					
						
							|  |  |  |  |           id: mapData.id, | 
					
						
							|  |  |  |  |           type: mapData.TYPE | 
					
						
							|  |  |  |  |         }, //属性设置 | 
					
						
							|  |  |  |  |         callback: (node) => { | 
					
						
							|  |  |  |  |           // console.log(node); | 
					
						
							|  |  |  |  |         } //回调事件 | 
					
						
							|  |  |  |  |       }); | 
					
						
							|  |  |  |  |       map.addMarker(iconTextMarker); | 
					
						
							|  |  |  |  |       markerArr.push(iconTextMarker); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     console.log('markerArr',markerArr) | 
					
						
							|  |  |  |  |     console.log('markerIDArr',markerIDArr) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //添加标注 | 
					
						
							|  |  |  |  |   function addBox(data) { | 
					
						
							|  |  |  |  |     for (let j = 0; j < data.boxList.length; j++) { | 
					
						
							|  |  |  |  |       let mapData = data.boxList[j]; | 
					
						
							|  |  |  |  |       let boxMarker = new jsmap.JSBoxMarker({ | 
					
						
							|  |  |  |  |         id: j, | 
					
						
							|  |  |  |  |         position: mapData.position, //坐标 | 
					
						
							|  |  |  |  |         floorId: 1, //楼层id,默认为1(地面) | 
					
						
							|  |  |  |  |         color: mapData.color, //颜色 | 
					
						
							|  |  |  |  |         height: 0, //基底高度 | 
					
						
							|  |  |  |  |         stretchHeight: mapData.stretchHeight, //拉伸高度 | 
					
						
							|  |  |  |  |         strokeColor: mapData.strokeColor, //边线颜色 | 
					
						
							|  |  |  |  |         strokeWidth: 4, //边线宽度 | 
					
						
							|  |  |  |  |         // properties: { | 
					
						
							|  |  |  |  |         //   id: mapData.id | 
					
						
							|  |  |  |  |         // }, //属性设置 | 
					
						
							|  |  |  |  |         callback: (node) => { | 
					
						
							|  |  |  |  |           // console.log(node); | 
					
						
							|  |  |  |  |         } //回调事件 | 
					
						
							|  |  |  |  |       }); | 
					
						
							|  |  |  |  |       map.addMarker(boxMarker); | 
					
						
							|  |  |  |  |       markerArr.push(boxMarker) | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //添加标注 | 
					
						
							|  |  |  |  |   function addWall(data) { | 
					
						
							|  |  |  |  |     let mapData = data.wallMap; | 
					
						
							|  |  |  |  |     let wallMarker = new jsmap.JSWallMarker({ | 
					
						
							|  |  |  |  |       id: 'wallMarker', | 
					
						
							|  |  |  |  |       position: mapData.position, //坐标 | 
					
						
							|  |  |  |  |       floorId: 1, //楼层id,默认为1(地面) | 
					
						
							|  |  |  |  |       color: 'rgb(139,71,137)', //颜色 | 
					
						
							|  |  |  |  |       closed: true,  //墙是否闭合 | 
					
						
							|  |  |  |  |       baseHeight: 0,  //基底高度 | 
					
						
							|  |  |  |  |       height: 20,  //高度 | 
					
						
							|  |  |  |  |       wallType: jsmap.JSWallType.WAVE,  //墙类型 | 
					
						
							|  |  |  |  |       callback: (node) => { | 
					
						
							|  |  |  |  |         // console.log(node); | 
					
						
							|  |  |  |  |       } //回调事件 | 
					
						
							|  |  |  |  |     }); | 
					
						
							|  |  |  |  |     map.addMarker(wallMarker); | 
					
						
							|  |  |  |  |     markerArr.push(wallMarker) | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  |   function showCurrentMarker(id){ | 
					
						
							|  |  |  |  |     // console.info("我是html页面的方法,传给我的Id:" + id) | 
					
						
							|  |  |  |  |     currentMarker = markerArr.find( item => item._id === id); | 
					
						
							|  |  |  |  |     if(currentMarker !== undefined){ | 
					
						
							|  |  |  |  |       map.flyToMarker(currentMarker); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | </script> | 
					
						
							|  |  |  |  | </body> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | </html> |