overlay_markerLayerEvent.html 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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_markerLayerEvent"></title>
  9. <script type="text/javascript" include="bootstrap" src="../js/include-web.js"></script>
  10. <script type="text/javascript" exclude="iclient-classic" src="../../dist/classic/include-classic.js"></script>
  11. <style type="text/css">
  12. body {
  13. margin: 0;
  14. overflow: hidden;
  15. background: #fff;
  16. width: 100%;
  17. height: 100%
  18. }
  19. #map {
  20. position: absolute;
  21. width: 100%;
  22. height: 100%;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div id="map"></div>
  28. <script>
  29. var map, layer, markerlayer, marker,
  30. host = window.isLocal ? window.server : "https://iserver.supermap.io",
  31. url = host + "/iserver/services/map-world/rest/maps/World";
  32. init();
  33. function init() {
  34. map = new SuperMap.Map("map", {
  35. controls: [
  36. new SuperMap.Control.Zoom(),
  37. new SuperMap.Control.Navigation(),
  38. new SuperMap.Control.LayerSwitcher()
  39. ]
  40. });
  41. layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", url, null, {maxResolution: "auto"});
  42. markerlayer = new SuperMap.Layer.Markers("markerLayer");
  43. layer.events.on({"layerInitialized": addLayer});
  44. addData();
  45. }
  46. function addLayer() {
  47. map.addLayers([layer, markerlayer]);
  48. //显示地图范围
  49. map.setCenter(new SuperMap.LonLat(0, 0), 1);
  50. }
  51. //添加数据
  52. function addData() {
  53. markerlayer.removeMarker(marker);
  54. var size = new SuperMap.Size(44, 33);
  55. var offset = new SuperMap.Pixel(-(size.w / 2), -size.h);
  56. var icon = new SuperMap.Icon('./images/marker.png', size, offset);
  57. marker = new SuperMap.Marker(new SuperMap.LonLat(0, 0), icon);
  58. marker.events.on({
  59. "click": openInfoWin,
  60. "touchstart": openInfoWin, //假如要在移动端的浏览器也实现点击弹框,则在注册touch类事件
  61. "scope": marker
  62. });
  63. markerlayer.addMarker(marker);
  64. }
  65. //打开对应的信息框
  66. var infowin = null;
  67. function openInfoWin() {
  68. closeInfoWin();
  69. var marker = this;
  70. var lonlat = marker.getLonLat();
  71. var size = new SuperMap.Size(0, 33);
  72. var offset = new SuperMap.Pixel(11, -30);
  73. var icon = new SuperMap.Icon("./images/marker.png", size, offset);
  74. var popup = new SuperMap.Popup.FramedCloud("popwin",
  75. new SuperMap.LonLat(lonlat.lon, lonlat.lat),
  76. null,
  77. resources.text_mouseClickEvent,
  78. icon,
  79. true);
  80. infowin = popup;
  81. map.addPopup(popup);
  82. }
  83. //关闭信息框
  84. function closeInfoWin() {
  85. if (infowin) {
  86. try {
  87. infowin.hide();
  88. infowin.destroy();
  89. }
  90. catch (e) {
  91. }
  92. }
  93. }
  94. </script>
  95. </body>
  96. </html>