1+ <!DOCTYPE html>
2+ < html >
3+
4+ < head >
5+ < title > ol-point-colorpleth</ title >
6+ < meta charset ="utf-8 " />
7+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
8+ < link rel ="stylesheet " href ="https://cdn.jsdelivr.net/npm/openlayers/dist/ol.css ">
9+ < style >
10+ html ,
11+ body ,
12+ # map {
13+ height : 100% ;
14+ padding : 0 ;
15+ margin : 0 ;
16+ }
17+ </ style >
18+ </ head >
19+
20+ < body >
21+ < div id ="map "> </ div >
22+ < script src ="https://cdn.jsdelivr.net/npm/openlayers/dist/ol.js "> </ script >
23+ < script src ="../../build/mapv.js "> </ script >
24+ < script >
25+ var map = new ol . Map ( {
26+ target : 'map' ,
27+ layers : [
28+ new ol . layer . Tile ( {
29+ layerName : 'baseLayer' ,
30+ preload : 4 ,
31+ source : new ol . source . OSM ( {
32+ url : 'http://{a-e}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png'
33+ } )
34+ } )
35+ ] ,
36+ loadTilesWhileAnimating : true ,
37+ pixelRatio : 1 ,
38+ view : new ol . View ( {
39+ // projection: 'EPSG:4326',
40+ // center: [-102.17609405517578, 34.41583177128595],
41+ projection : 'EPSG:3857' ,
42+ center : ol . proj . transform ( [ - 102.17609405517578 , 34.41583177128595 ] , 'EPSG:4326' ,
43+ "EPSG:3857" ) ,
44+ zoom : 5
45+ } )
46+ } ) ;
47+
48+ var randomCount = 300 ;
49+ var data = [ ] ;
50+
51+ var img = new Image ( ) ;
52+ img . src = '../images/flag.png' ;
53+
54+ img . onload = function ( ) {
55+ // 构造数据
56+ while ( randomCount -- ) {
57+ data . push ( {
58+ geometry : {
59+ type : 'Point' ,
60+ // coordinates: ol.proj.transform([-125.8 + Math.random() * 50, 30.3 + Math.random() * 20],
61+ // 'EPSG:4326',
62+ // "EPSG:3857")
63+ coordinates : [ - 125.8 + Math . random ( ) * 50 , 30.3 + Math . random ( ) * 20 ]
64+ } ,
65+ deg : 360 * Math . random ( ) ,
66+ icon : img
67+ } ) ;
68+ }
69+
70+ var dataSet = new mapv . DataSet ( data ) ;
71+
72+ var baseSize = {
73+ width : 24 ,
74+ height : 30
75+ } ;
76+
77+
78+ var options = {
79+ draw : 'icon' ,
80+ // projection是dataSet中数据的投影类型 可以与map.view中的类型不同 会自动转换 但对性能有一定的影响 所以尽量让数据与map的类型一致
81+ // projection: 'EPSG:3857',
82+ projection : 'EPSG:4326' ,
83+ width : baseSize . width ,
84+ height : baseSize . height ,
85+ methods : {
86+ click : function ( event ) {
87+ console . log ( event )
88+ } ,
89+ mousemove : function ( event ) {
90+ if ( event ) {
91+ mapvLayer . setDefaultCursor ( 'pointer' , event )
92+ } else {
93+ mapvLayer . setDefaultCursor ( 'default' , event )
94+ }
95+ }
96+ }
97+ } ;
98+ var mapvLayer = new mapv . OpenlayersLayer ( map , dataSet , options ) ;
99+ }
100+ </ script >
101+ </ body >
102+
103+ </ html >
0 commit comments