@@ -2,167 +2,181 @@ var vmModule = require("./main-view-model");
22var observableModule = require ( "data/observable" ) ;
33var GoogleMaps = require ( "nativescript-google-maps-sdk" ) ;
44var GoogleMapsUtils = require ( "nativescript-google-maps-utils" ) ;
5+ // var GoogleMapsUtils = require("./dev");
56var Image = require ( "ui/image" ) . Image ;
67var imageSource = require ( "image-source" ) ;
78var Color = require ( "color" ) . Color ;
89
910var debug = require ( './debug' ) ( __filename ) ;
1011
1112function wait ( milliSeconds ) {
12- return new Promise ( function ( resolve , reject ) {
13- setTimeout ( function ( ) {
14- resolve ( milliSeconds ) ;
15- } , milliSeconds ) ;
16- } ) ;
13+ return new Promise ( function ( resolve , reject ) {
14+ setTimeout ( function ( ) {
15+ resolve ( milliSeconds ) ;
16+ } , milliSeconds ) ;
17+ } ) ;
1718}
1819
1920function pageLoaded ( args ) {
20- var page = args . object ;
21- page . bindingContext = vmModule . mainViewModel ;
21+ var page = args . object ;
22+ page . bindingContext = vmModule . mainViewModel ;
2223}
2324exports . pageLoaded = pageLoaded ;
2425
2526function onMapReady ( args ) {
26- debug ( "onMapReady" ) ;
27-
28- var mapView = args . object ;
29-
30- if ( mapView . android ) {
31-
32- function configure ( mapView , options ) {
33-
34- options = options || { } ;
35-
36- var uiSetting = mapView . gMap . getUiSettings ( ) ;
37-
38- if ( 'allGesturesEnabled' in options ) {
39- uiSetting . setAllGesturesEnabled ( options . allGesturesEnabled ) ;
40- }
41- if ( 'compassEnabled' in options ) {
42- uiSetting . setCompassEnabled ( options . compassEnabled ) ;
43- }
44- if ( 'indoorLevelPickerEnabled' in options ) {
45- uiSetting . setIndoorLevelPickerEnabled ( options . indoorLevelPickerEnabled ) ;
46- }
47- if ( 'mapToolbarEnabled' in options ) {
48- uiSetting . setMapToolbarEnabled ( options . mapToolbarEnabled ) ;
49- }
50- if ( 'myLocationButtonEnabled' in options ) {
51- uiSetting . setMyLocationButtonEnabled ( options . myLocationButtonEnabled ) ;
52- }
53- if ( 'rotateGesturesEnabled' in options ) {
54- uiSetting . setRotateGesturesEnabled ( options . rotateGesturesEnabled ) ;
55- }
56- if ( 'scrollGesturesEnabled' in options ) {
57- uiSetting . setScrollGesturesEnabled ( options . scrollGesturesEnabled ) ;
58- }
59- if ( 'tiltGesturesEnabled' in options ) {
60- uiSetting . setTiltGesturesEnabled ( options . tiltGesturesEnabled ) ;
61- }
62- if ( 'zoomControlsEnabled' in options ) {
63- uiSetting . setZoomControlsEnabled ( options . zoomControlsEnabled ) ;
64- }
65- if ( 'zoomGesturesEnabled' in options ) {
66- uiSetting . setZoomGesturesEnabled ( options . zoomGesturesEnabled ) ;
67- }
68-
69- if ( 'myLocationEnabled' in options ) {
70- mapView . gMap . setMyLocationEnabled ( options . myLocationEnabled ) ;
71- }
72- if ( 'trafficEnabled' in options ) {
73- mapView . gMap . setTrafficEnabled ( options . trafficEnabled ) ;
74- }
75-
76- }
77-
78-
79- configure ( mapView , {
80- compassEnabled : true ,
81- zoomControlsEnabled : true ,
82- myLocationButtonEnabled : false ,
83- mapToolbarEnabled : true ,
84- allGesturesEnabled : true ,
85- myLocationEnabled : false ,
86- trafficEnabled : true ,
87- } ) ;
88-
27+ debug ( "onMapReady" ) ;
28+
29+ var mapView = args . object ;
30+
31+ if ( mapView . android ) {
32+
33+ function configure ( mapView , options ) {
34+
35+ options = options || { } ;
36+
37+ var uiSetting = mapView . gMap . getUiSettings ( ) ;
38+
39+ if ( 'allGesturesEnabled' in options ) {
40+ uiSetting . setAllGesturesEnabled ( options . allGesturesEnabled ) ;
41+ }
42+ if ( 'compassEnabled' in options ) {
43+ uiSetting . setCompassEnabled ( options . compassEnabled ) ;
44+ }
45+ if ( 'indoorLevelPickerEnabled' in options ) {
46+ uiSetting . setIndoorLevelPickerEnabled ( options . indoorLevelPickerEnabled ) ;
47+ }
48+ if ( 'mapToolbarEnabled' in options ) {
49+ uiSetting . setMapToolbarEnabled ( options . mapToolbarEnabled ) ;
50+ }
51+ if ( 'myLocationButtonEnabled' in options ) {
52+ uiSetting . setMyLocationButtonEnabled ( options . myLocationButtonEnabled ) ;
53+ }
54+ if ( 'rotateGesturesEnabled' in options ) {
55+ uiSetting . setRotateGesturesEnabled ( options . rotateGesturesEnabled ) ;
56+ }
57+ if ( 'scrollGesturesEnabled' in options ) {
58+ uiSetting . setScrollGesturesEnabled ( options . scrollGesturesEnabled ) ;
59+ }
60+ if ( 'tiltGesturesEnabled' in options ) {
61+ uiSetting . setTiltGesturesEnabled ( options . tiltGesturesEnabled ) ;
62+ }
63+ if ( 'zoomControlsEnabled' in options ) {
64+ uiSetting . setZoomControlsEnabled ( options . zoomControlsEnabled ) ;
65+ }
66+ if ( 'zoomGesturesEnabled' in options ) {
67+ uiSetting . setZoomGesturesEnabled ( options . zoomGesturesEnabled ) ;
68+ }
69+
70+ if ( 'myLocationEnabled' in options ) {
71+ mapView . gMap . setMyLocationEnabled ( options . myLocationEnabled ) ;
72+ }
73+ if ( 'trafficEnabled' in options ) {
74+ mapView . gMap . setTrafficEnabled ( options . trafficEnabled ) ;
75+ }
8976
9077 }
9178
92- debug ( "Setting a marker..." ) ;
9379
94- var marker = new GoogleMaps . Marker ( ) ;
95- marker . position = GoogleMaps . Position . positionFromLatLng ( 36.799441 , 10.178554 ) ;
96- marker . title = "Tunis" ;
97- marker . snippet = "Tunisia" ;
98- marker . userData = { index : - 1 } ;
99- mapView . addMarker ( marker ) ;
80+ configure ( mapView , {
81+ compassEnabled : true ,
82+ zoomControlsEnabled : true ,
83+ myLocationButtonEnabled : false ,
84+ mapToolbarEnabled : true ,
85+ allGesturesEnabled : true ,
86+ myLocationEnabled : false ,
87+ trafficEnabled : true ,
88+ } ) ;
10089
10190
102- var positionSet ;
103- var makerSet ;
91+ }
10492
105- function generateRandomPosition ( position , distance ) {
106- var r = distance / 111300 ;
93+ debug ( "Setting a marker..." ) ;
10794
108- var x = position [ 0 ] ;
109- var y = position [ 1 ] ;
95+ var marker = new GoogleMaps . Marker ( ) ;
96+ marker . position = GoogleMaps . Position . positionFromLatLng ( 36.799441 , 10.178554 ) ;
97+ marker . title = "Tunis" ;
98+ marker . snippet = "Tunisia" ;
99+ marker . userData = {
100+ index : - 1
101+ } ;
102+ mapView . addMarker ( marker ) ;
110103
111- var u = Math . random ( ) ;
112- var v = Math . random ( ) ;
113104
114- var w = r * Math . sqrt ( u ) ;
115- var t = 2 * Math . PI * v ;
116-
117- var dx = w * Math . cos ( t ) / Math . cos ( y ) ;
118- var xy = w * Math . sin ( t ) ;
119-
120- return [ x + dx , y + xy ] ;
121- }
122-
123- positionSet = [ ] ;
124- for ( var i = 0 ; i < 200 ; i ++ ) {
125- positionSet . push ( generateRandomPosition ( [ 36.845026 , 10.325454 ] , 10000 ) ) ;
126- }
105+ var positionSet ;
106+ var makerSet ;
127107
128- positionSet = positionSet . map ( function ( position ) {
129- return GoogleMaps . Position . positionFromLatLng ( position [ 0 ] , position [ 1 ] ) ;
130- } ) ;
108+ function generateRandomPosition ( position , distance ) {
109+ var r = distance / 111300 ;
131110
132- GoogleMapsUtils . enableDebug ( require ( './debug' ) ( 'nativescript-google-maps-utils' ) ) ;
111+ var x = position [ 0 ] ;
112+ var y = position [ 1 ] ;
133113
134- GoogleMapsUtils . setupHeatmap ( mapView , positionSet ) ;
114+ var u = Math . random ( ) ;
115+ var v = Math . random ( ) ;
135116
136- setTimeout ( function ( ) {
117+ var w = r * Math . sqrt ( u ) ;
118+ var t = 2 * Math . PI * v ;
137119
138- positionSet = [ ] ;
139- for ( var i = 0 ; i < 50 ; i ++ ) {
140- positionSet . push ( generateRandomPosition ( [ 36.799441 , 10.178554 ] , 10000 ) ) ;
141- }
120+ var dx = w * Math . cos ( t ) / Math . cos ( y ) ;
121+ var xy = w * Math . sin ( t ) ;
142122
143- makerSet = positionSet . map ( function ( position , index ) {
144- var marker = new GoogleMaps . Marker ( ) ;
145- marker . position = GoogleMaps . Position . positionFromLatLng ( position [ 0 ] , position [ 1 ] ) ;
146- marker . userData = { index : index } ;
147- return marker ;
148- } ) ;
123+ return [ x + dx , y + xy ] ;
124+ }
149125
150- GoogleMapsUtils . setupMarkerCluster ( mapView , makerSet ) ;
126+ positionSet = [ ] ;
127+ for ( var i = 0 ; i < 200 ; i ++ ) {
128+ positionSet . push ( generateRandomPosition ( [ 36.845026 , 10.325454 ] , 10000 ) ) ;
129+ }
151130
152- } , 10000 )
131+ positionSet = positionSet . map ( function ( position ) {
132+ return GoogleMaps . Position . positionFromLatLng ( position [ 0 ] , position [ 1 ] ) ;
133+ } ) ;
153134
154- }
135+ GoogleMapsUtils . enableDebug ( require ( './debug' ) ( 'nativescript-google-maps-utils' ) ) ;
136+
137+ GoogleMapsUtils . setupHeatmap ( mapView , positionSet ) ;
138+
139+ setTimeout ( function ( ) {
140+
141+ positionSet = [ ] ;
142+ for ( var i = 0 ; i < 50 ; i ++ ) {
143+ positionSet . push ( generateRandomPosition ( [ 36.799441 , 10.178554 ] , 10000 ) ) ;
144+ }
145+
146+ makerSet = positionSet . map ( function ( position , index ) {
147+ var marker = new GoogleMaps . Marker ( ) ;
148+ marker . position = GoogleMaps . Position . positionFromLatLng ( position [ 0 ] , position [ 1 ] ) ;
149+ marker . title = "Title #" + index ;
150+ marker . snippet = "Snippet #" + index ;
151+ marker . userData = {
152+ index : index
153+ } ;
154+ return marker ;
155+ } ) ;
156+
157+ GoogleMapsUtils . setupMarkerCluster ( mapView , makerSet ) ;
158+
159+ } , 10000 )
155160
156- function onMarkerSelect ( args ) {
157- debug ( "Clicked on " + args . marker . title ) ;
158161}
159162
160163var lastCamera = null ;
164+
161165function onCameraChanged ( args ) {
162- debug ( "Camera changed: " + JSON . stringify ( args . camera ) , JSON . stringify ( args . camera ) === lastCamera ) ;
163- lastCamera = JSON . stringify ( args . camera ) ;
166+ debug ( "Camera changed: " + JSON . stringify ( args . camera ) , JSON . stringify ( args . camera ) === lastCamera ) ;
167+ lastCamera = JSON . stringify ( args . camera ) ;
168+ }
169+
170+ function onMarkerSelect ( args ) {
171+ // debug("Clicked on " + args.marker.title);
172+ debug ( "Clicked on marker " + ( args . marker ? args . marker . title : '?' ) ) ;
173+ }
174+
175+ function onMarkerInfoWindowTapped ( args ) {
176+ debug ( "Clicked on window " + args . marker . title ) ;
164177}
165178
166179exports . onMapReady = onMapReady ;
167- exports . onMarkerSelect = onMarkerSelect ;
168180exports . onCameraChanged = onCameraChanged ;
181+ exports . onMarkerSelect = onMarkerSelect ;
182+ exports . onMarkerInfoWindowTapped = onMarkerInfoWindowTapped ;
0 commit comments