1+ <!DOCTYPE html>
2+ < html >
3+
4+ < head >
5+ < meta http-equiv ="X-UA-Compatible " content ="IE=Edge ">
6+ < meta name ="viewport " content ="initial-scale=1.0, user-scalable=no, width=device-width ">
7+ < script type ="text/javascript " include ="mapv " src ="../../dist/include-openlayers.js "> </ script >
8+ < title data-i18n ="resources.title_mapvLianjia "> </ title >
9+ < style >
10+ body {
11+ margin : 0 ;
12+ overflow : hidden;
13+ background : # fff ;
14+ width : 100% ;
15+ height : 100% ;
16+ position : relative;
17+ }
18+
19+ # map {
20+ width : 100% ;
21+ height : 100% ;
22+ }
23+
24+ # popupContainer {
25+ background : rgba (9 , 1 , 54 , 0.589 );
26+ color : red;
27+ display : none;
28+ padding : 15px ;
29+ color : white;
30+ font-size : 15px ;
31+ font-weight : bolder;
32+ border-radius : 5px ;
33+ box-shadow : 0px -1px 46px 0px rgba (0 , 0 , 0 , 0.75 );
34+ }
35+
36+ # price {
37+ font-weight : lighter;
38+ padding-right : 5px ;
39+ }
40+
41+ # titleContainer {
42+ position : absolute;
43+ color : white;
44+ left : 0 ;
45+ top : 30px ;
46+ text-align : center;
47+ width : 100% ;
48+ }
49+
50+ # titleContainer > # title {
51+ letter-spacing : 0.1em ;
52+ }
53+ </ style >
54+ </ head >
55+
56+ < body >
57+ < div id ="map "> </ div >
58+ < div id ="titleContainer ">
59+ < h2 id ="title " data-i18n ="resources.text_mapvLianjia_title "> </ h2 >
60+ </ div >
61+ < div id ="popupContainer ">
62+ < table >
63+ < tr >
64+ < td data-i18n ="resources.text_mapvLianjia_tooltip "> </ td >
65+ < td id ="price "> </ td >
66+ </ tr >
67+ </ table >
68+ </ div >
69+ < script type ="text/javascript " include ="jquery " src ="../js/include-web.js "> </ script >
70+ < script type ="text/javascript ">
71+ // map
72+ var host = window . isLocal ? window . server : "http://support.supermap.com.cn:8090" ;
73+
74+ var url = host + "/iserver/services/map-china400/rest/maps/ChinaDark" ;
75+ var queryUrl = "https://www.supermapol.com/iserver/services/map_201802beijingfangjia/rest/maps/2018年2月北京房价_链家小区参考价_蜂巢" ;
76+
77+ var map = new ol . Map ( {
78+ target : 'map' ,
79+ controls : ol . control . defaults ( { attributionOptions : { collapsed : true } } )
80+ . extend ( [ new ol . supermap . control . Logo ( ) ] ) ,
81+ view : new ol . View ( {
82+ center : [ 12956083.664865 , 4872418.298275658 ] ,
83+ zoom : 10 ,
84+ projection : 'EPSG:3857'
85+ } ) ,
86+ layers : [ new ol . layer . Tile ( {
87+ source : new ol . source . TileSuperMapRest ( {
88+ url : url
89+ } )
90+ } ) ]
91+ } ) ;
92+
93+ // popup
94+ var popupContainer = document . getElementById ( 'popupContainer' ) ;
95+ var popup = new ol . Overlay ( {
96+ element : document . getElementById ( 'popupContainer' ) ,
97+ offset : [ 15 , - 50 ]
98+ } ) ;
99+ map . addOverlay ( popup ) ;
100+
101+ var sqlParam = new SuperMap . QueryBySQLParameters ( {
102+ queryParams : {
103+ name : "lj_xq_500fc@BJ_201802LJ" ,
104+ attributeFilter : "SMID>0" ,
105+ } ,
106+ fromIndex : 0 ,
107+ toIndex : 10000 ,
108+ maxFeatures : 10000 ,
109+ } ) ;
110+
111+ new ol . supermap . QueryService ( queryUrl ) . queryBySQL ( sqlParam , function ( data ) {
112+ var features = data . result . recordsets [ 0 ] . features . features ;
113+
114+ //构造mapv数据
115+ var data = [ ] , arr = [ ] ;
116+ for ( var i = 0 ; i < features . length ; i ++ ) {
117+
118+ var feature = features [ i ] ;
119+ var average_price = feature . properties . average_price_1 ;
120+
121+ data . push ( {
122+ geometry : {
123+ type : 'Polygon' ,
124+ coordinates : feature . geometry . coordinates [ 0 ]
125+ } ,
126+ count : Math . floor ( average_price / 10000 ) ,
127+ price : parseFloat ( average_price ) . toFixed ( 2 ) ,
128+ } ) ;
129+
130+ } ;
131+
132+ var dataSet = new mapv . DataSet ( data . concat ( ) ) ;
133+ var mapvOptions = {
134+ max : 27 ,
135+ gradient : { // 显示的颜色渐变范围
136+ '0' : 'rgba(0,0,255,0.7)' ,
137+ '0.6' : 'rgba(255,0,0,0.7)'
138+ } ,
139+ draw : 'intensity' ,
140+ methods : {
141+ click : function ( item ) {
142+ if ( item != null ) {
143+ $ ( "#price" ) . text ( "¥" + item . price ) ;
144+ popupContainer . style . display = "block" ;
145+ popup . setPosition ( item . geometry . coordinates [ 0 ] [ 0 ] ) ;
146+ } else {
147+ popup . setPosition ( ) ;
148+ } ;
149+ }
150+ }
151+ } ;
152+
153+ var options = {
154+ map : map , dataSet : dataSet , mapvOptions : mapvOptions
155+ } ;
156+
157+ map . addLayer ( new ol . layer . Image ( {
158+ source : new ol . source . Mapv ( options )
159+ } ) ) ;
160+ } ) ;
161+ </ script >
162+ </ body >
163+
164+ </ html >
0 commit comments