popup_customPopup.html 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <!--********************************************************************
  2. * Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved.
  3. *********************************************************************-->
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta charset="utf-8">
  8. <title data-i18n="resources.title_customPopup"></title>
  9. <style type="text/css">
  10. body {
  11. margin: 0;
  12. overflow: hidden;
  13. background: #fff;
  14. width: 100%;
  15. height: 100%
  16. }
  17. #map {
  18. position: absolute;
  19. width: 100%;
  20. height: 100%;
  21. }
  22. #toolbar {
  23. position: absolute;
  24. top: 50px;
  25. right: 10px;
  26. width: 330px;
  27. text-align: center;
  28. z-index: 100;
  29. border-radius: 4px;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <div id="toolbar" class="panel panel-primary">
  35. <div class='panel-heading'>
  36. <h5 class='panel-title text-center' data-i18n="resources.title_customPopup"></h5></div>
  37. <div class='panel-body content'>
  38. <div class='panel'>
  39. <div class='input-group'>
  40. <span class='input-group-addon' data-i18n="resources.text_color"></span>
  41. <input id='popupColor' class='form-control' value='#66CDAA'/>
  42. </div>
  43. </div>
  44. <div class='panel'>
  45. <div class='input-group'>
  46. <span class='input-group-addon' data-i18n="resources.text_opacity"></span>
  47. <input id='popupOpacity' class='form-control' value='0.5'/>
  48. </div>
  49. </div>
  50. <input type="button" class="btn btn-default" data-i18n="[value]resources.btn_setBackgroundColor" onclick="changecolor()"/>&nbsp; &nbsp;
  51. <input type="button" class="btn btn-default" data-i18n="[value]resources.btn_changeOpacity" onclick="changeopacity()"/>
  52. </div>
  53. </div>
  54. <div id="map"></div>
  55. <script type="text/javascript" include="bootstrap,widgets.alert" src="../js/include-web.js"></script>
  56. <script type="text/javascript" exclude="iclient-classic" src="../../dist/classic/include-classic.js"></script>
  57. <script>
  58. var host = window.isLocal ? window.server : "https://iserver.supermap.io";
  59. var map, layerWorld, marker, markers, popup;
  60. var url = host + "/iserver/services/map-world/rest/maps/World";
  61. init();
  62. function init() {
  63. //map上添加控件
  64. map = new SuperMap.Map("map", {
  65. controls: [
  66. new SuperMap.Control.ScaleLine(),
  67. new SuperMap.Control.Zoom(),
  68. new SuperMap.Control.Navigation({ //添加导航控件到map
  69. dragPanOptions: {
  70. enableKinetic: true //拖拽动画
  71. }
  72. })]
  73. });
  74. map.addControl(new SuperMap.Control.LayerSwitcher(), new SuperMap.Pixel(42, 80));
  75. //定义layerWorld图层,获取图层服务地址
  76. layerWorld = new SuperMap.Layer.TiledDynamicRESTLayer("World", url);
  77. //为图层初始化完毕添加layerInitialized事件
  78. layerWorld.events.on({"layerInitialized": addLayer});
  79. //初始化标记图层类
  80. markers = new SuperMap.Layer.Markers("Markers");
  81. layerWorld.events.on({"layerInitialized": addMarker});
  82. }
  83. var infowin = null;
  84. //定义mouseClickHandler函数,触发click事件会调用此函数
  85. function mouseClickHandler(event) {
  86. widgets.alert.clearAlert();
  87. closeInfoWin();
  88. //初始化popup类
  89. popup = new SuperMap.Popup(
  90. "chicken",
  91. marker.getLonLat(),
  92. new SuperMap.Size(175, 140),
  93. '<img src="./images/Beijing.jpg">',
  94. true,
  95. null
  96. );
  97. //设置弹窗的边框样式
  98. popup.setBorder("solid 2px #6CA6CD");
  99. //允许弹出内容的最小尺寸
  100. popup.mixSize = 200;
  101. infowin = popup;
  102. //添加弹窗到map图层
  103. map.addPopup(popup);
  104. }
  105. function closeInfoWin() {
  106. if (infowin) {
  107. try {
  108. infowin.hide();
  109. infowin.destroy();
  110. }
  111. catch (e) {
  112. }
  113. }
  114. }
  115. //定义addLayer函数,触发 layerInitialized事件会调用此函数
  116. function addLayer() {
  117. //map上添加分块动态REST图层和标记图层
  118. map.addLayers([layerWorld, markers]);
  119. map.setCenter(new SuperMap.LonLat(118, 40), 6);
  120. }
  121. //定义addMarker函数,触发layerInitialized事件会调用此函数
  122. function addMarker() {
  123. size = new SuperMap.Size(21, 25);
  124. offset = new SuperMap.Pixel(-(size.w / 2), -size.h);
  125. icon = new SuperMap.Icon('images/markerbig_select.png', size, offset);
  126. //初始化标记覆盖物类
  127. marker = new SuperMap.Marker(new SuperMap.LonLat(116.38810, 39.90602), icon);
  128. //添加覆盖物到标记图层
  129. markers.addMarker(marker);
  130. //注册 click 事件,触发 mouseClickHandler()方法
  131. marker.events.on({
  132. "click": mouseClickHandler,
  133. "touchstart": mouseClickHandler //假如要在移动端的浏览器也实现点击弹框,则在注册touch类事件
  134. });
  135. }
  136. //设置弹出框的背景颜色.
  137. function changecolor() {
  138. widgets.alert.clearAlert();
  139. if (!popup) {
  140. widgets.alert.showAlert(resources.msg_createPopup, false, 220);
  141. return;
  142. }
  143. var colorStr = document.getElementById('popupColor').value;
  144. if (colorStr) {
  145. popup.setBackgroundColor(colorStr);
  146. }
  147. }
  148. //设置弹出框的透明度.
  149. function changeopacity() {
  150. widgets.alert.clearAlert();
  151. if (!popup) {
  152. widgets.alert.showAlert(resources.msg_createPopup, false, 220);
  153. return;
  154. }
  155. var opacityStr = document.getElementById('popupOpacity').value;
  156. popup.setOpacity(opacityStr);
  157. }
  158. </script>
  159. </body>
  160. </html>