mapvLianjiaData.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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_lianjia"></title>
  9. <script type="text/javascript" src="../js/include-web.js"></script>
  10. <style>
  11. body {
  12. margin: 0;
  13. overflow: hidden;
  14. background: #fff;
  15. width: 100%;
  16. height: 100%;
  17. position: absolute;
  18. top: 0;
  19. }
  20. #map {
  21. margin: 0 auto;
  22. width: 100%;
  23. height: 100%;
  24. }
  25. #titleContainer {
  26. width: 100%;
  27. position: absolute;
  28. top: 30px;
  29. color: white;
  30. z-index: 999;
  31. font-size: 20px;
  32. font-weight: bold;
  33. text-align: center;
  34. }
  35. #titleContainer > #title {
  36. letter-spacing: 0.1em;
  37. }
  38. .popupStyle {
  39. font-size: 15px;
  40. font-weight: bolder;
  41. padding: 15px;
  42. border-radius: 5px;
  43. }
  44. .popupStyle .leaflet-popup-content-wrapper,
  45. .popupStyle .leaflet-popup-tip {
  46. background: rgba(9, 1, 54, 0.589);
  47. color: white;
  48. }
  49. </style>
  50. </head>
  51. <body>
  52. <div id="map"></div>
  53. <div id="titleContainer">
  54. <h2 id="title" data-i18n="resources.title_lianjia"></h2>
  55. </div>
  56. <script type="text/javascript" include="mapv" src="../../dist/leaflet/include-leaflet.js"></script>
  57. <script type="text/javascript">
  58. var host = window.isLocal ? window.server : 'https://iserver.supermap.io';
  59. var baseurl = host + '/iserver/services/map-china400/rest/maps/ChinaDark';
  60. var dataUrl =
  61. 'https://www.supermapol.com/iserver/services/map_201802beijingfangjia/rest/maps/2018年2月北京房价_链家小区参考价_蜂巢';
  62. var map, resultLayer, popup;
  63. map = L.map('map', {
  64. center: [39.954, 116.36],
  65. zoom: 12,
  66. maxZoom: 18,
  67. minZoom: 6
  68. });
  69. L.supermap.tiledMapLayer(baseurl).addTo(map);
  70. query();
  71. function query() {
  72. var param = new SuperMap.QueryBySQLParameters({
  73. queryParams: {
  74. name: 'lj_xq_500fc@BJ_201802LJ',
  75. attributeFilter: 'SMID > 0'
  76. },
  77. fromIndex: 0,
  78. toIndex: 10000,
  79. maxFeatures: 10000
  80. });
  81. L.supermap.queryService(dataUrl).queryBySQL(param, function(serviceResult) {
  82. var result = serviceResult.result;
  83. var features = result.recordsets[0].features.features;
  84. //构造数据
  85. var data = [];
  86. for (var i = 0; i < features.length; i++) {
  87. var feature = features[i];
  88. var average_price = feature.properties.average_price_1;
  89. var coordinates = feature.geometry.coordinates[0];
  90. for (var k = 0; k < coordinates.length; k++) {
  91. for (var j = 0; j < coordinates[k].length; j++) {
  92. coordinates[k][j] = coordsTo4326(coordinates[k][j]);
  93. }
  94. }
  95. data.push({
  96. geometry: {
  97. type: 'Polygon',
  98. coordinates: coordinates
  99. },
  100. count: parseFloat(average_price / 10000).toFixed(2),
  101. price: parseFloat(average_price).toFixed(2)
  102. });
  103. }
  104. var dataSet = new mapv.DataSet(data);
  105. var options = {
  106. fillStyle: 'rgba(255, 80, 53, 0.8)',
  107. max: 27,
  108. label: {
  109. show: true,
  110. fillStyle: 'white'
  111. },
  112. globalAlpha: 0.7,
  113. gradient: {
  114. // 显示的颜色渐变范围
  115. '0': '#5d5dff',
  116. '0.2': '#74add1',
  117. '0.4': '#ffffbf',
  118. '0.6': '#d73027',
  119. '0.8': '#FF0000'
  120. },
  121. draw: 'intensity',
  122. //弹窗的点击事件
  123. methods: {
  124. click: function(item) {
  125. if (item != null) {
  126. var point = item.geometry.coordinates[0][0];
  127. popup
  128. .setLatLng([point[1], point[0]])
  129. .setContent(resources.text_mapvLianjia_tooltip + item.price)
  130. .openOn(map);
  131. } else {
  132. popup.closePopup();
  133. }
  134. }
  135. }
  136. };
  137. //创建mapv图层
  138. resultLayer = L.supermap.mapVLayer(dataSet, options).addTo(map);
  139. popup = L.popup({
  140. className: 'popupStyle'
  141. });
  142. });
  143. function coordsTo4326(coords) {
  144. var lngLat = L.CRS.EPSG3857.unproject(L.point(coords));
  145. return [lngLat.lng, lngLat.lat];
  146. }
  147. }
  148. </script>
  149. </body>
  150. </html>