Skip to content

Commit 5d86f6f

Browse files
committed
.
1 parent fc3ab66 commit 5d86f6f

File tree

7 files changed

+173
-152
lines changed

7 files changed

+173
-152
lines changed

demo/app/app.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var application = require("application");
22

3-
if(application.ios) {
3+
if (application.ios) {
44
GMSServices.provideAPIKey("AIzaSyAtRVvG3Be3xXiZFR7xp-K-9hy4nZ4hMFs");
55
}
66

@@ -13,4 +13,6 @@ application.on(application.uncaughtErrorEvent, function (event) {
1313
});
1414

1515

16-
application.start({ moduleName: "main-page" });
16+
application.start({
17+
moduleName: "main-page"
18+
});

demo/app/main-page.js

Lines changed: 136 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -2,167 +2,181 @@ var vmModule = require("./main-view-model");
22
var observableModule = require("data/observable");
33
var GoogleMaps = require("nativescript-google-maps-sdk");
44
var GoogleMapsUtils = require("nativescript-google-maps-utils");
5+
// var GoogleMapsUtils = require("./dev");
56
var Image = require("ui/image").Image;
67
var imageSource = require("image-source");
78
var Color = require("color").Color;
89

910
var debug = require('./debug')(__filename);
1011

1112
function 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

1920
function pageLoaded(args) {
20-
var page = args.object;
21-
page.bindingContext = vmModule.mainViewModel;
21+
var page = args.object;
22+
page.bindingContext = vmModule.mainViewModel;
2223
}
2324
exports.pageLoaded = pageLoaded;
2425

2526
function 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

160163
var lastCamera = null;
164+
161165
function 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

166179
exports.onMapReady = onMapReady;
167-
exports.onMarkerSelect = onMarkerSelect;
168180
exports.onCameraChanged = onCameraChanged;
181+
exports.onMarkerSelect = onMarkerSelect;
182+
exports.onMarkerInfoWindowTapped = onMarkerInfoWindowTapped;

demo/app/main-page.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
<maps:mapView latitude="{{ latitude }}" longitude="{{ longitude }}"
44
zoom="{{ zoom }}" bearing="{{ bearing }}"
55
tilt="{{ tilt }}" i-padding="50,50,50,50" padding="{{ padding }}" mapReady="onMapReady"
6-
markerSelect="onMarkerSelect" cameraChanged="onCameraChanged" />
6+
cameraChanged="onCameraChanged"
7+
markerSelect="onMarkerSelect"
8+
markerInfoWindowTapped="onMarkerInfoWindowTapped"
9+
/>
710
</GridLayout>
811
</Page>

demo/app/main-view-model.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var observable = require("data/observable");
22
var HelloWorldModel = (function (_super) {
33
__extends(HelloWorldModel, _super);
4+
45
function HelloWorldModel() {
56
_super.call(this);
67
this.set("latitude", 36.800220);
@@ -14,4 +15,4 @@ var HelloWorldModel = (function (_super) {
1415
return HelloWorldModel;
1516
})(observable.Observable);
1617
exports.HelloWorldModel = HelloWorldModel;
17-
exports.mainViewModel = new HelloWorldModel();
18+
exports.mainViewModel = new HelloWorldModel();

demo/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
"version": "2.0.0"
66
},
77
"tns-android": {
8-
"version": "2.2.0"
8+
"version": "2.5.0"
99
}
1010
},
1111
"dependencies": {
12-
"nativescript-google-maps-sdk": "*",
13-
"nativescript-google-maps-utils": "file:..",
14-
"tns-core-modules": "^2.0.0"
12+
"nativescript-google-maps-sdk": "^1.4.3",
13+
"nativescript-google-maps-utils": "^0.1.2",
14+
"tns-core-modules": "^2.5.2"
1515
},
1616
"devDependencies": {
1717
"babel-traverse": "6.7.6",
@@ -20,4 +20,4 @@
2020
"filewalker": "0.1.2",
2121
"lazy": "1.0.11"
2222
}
23-
}
23+
}

0 commit comments

Comments
 (0)