Commit 712867d6 authored by Ratnadeep Rajendra Kharade's avatar Ratnadeep Rajendra Kharade
Browse files

set angle for map view and improved map performance.

parent a0dc277d
...@@ -18,6 +18,7 @@ declare var H: any; ...@@ -18,6 +18,7 @@ declare var H: any;
export class HomePage { export class HomePage {
private platform: any; private platform: any;
private map: any; private map: any;
private defaultLayers:any;
bikes = []; bikes = [];
streets = []; streets = [];
bikeApi: Observable<any>; bikeApi: Observable<any>;
...@@ -27,8 +28,8 @@ export class HomePage { ...@@ -27,8 +28,8 @@ export class HomePage {
public is3DChecked = false; public is3DChecked = false;
public isDetailsVisible = false; public isDetailsVisible = false;
public selectedBike ={id: 0}; public selectedBike = { id: 0 };
public isBikeReserved= false; public isBikeReserved = false;
public tempArr = [1, 2]; public tempArr = [1, 2];
public locationArr = [{ lat: 48.778409, lng: 9.179252 }, public locationArr = [{ lat: 48.778409, lng: 9.179252 },
...@@ -43,7 +44,7 @@ export class HomePage { ...@@ -43,7 +44,7 @@ export class HomePage {
public mapElement3d: ElementRef; public mapElement3d: ElementRef;
constructor(private geolocation: Geolocation, constructor(private geolocation: Geolocation,
public restService: RestService, public restService: RestService,
...@@ -84,11 +85,11 @@ export class HomePage { ...@@ -84,11 +85,11 @@ export class HomePage {
console.log('my data: ', resp); console.log('my data: ', resp);
this.bikes = resp; this.bikes = resp;
for (let i = 0; i < this.bikes.length; i++) { for (let i = 0; i < this.bikes.length; i++) {
var beforeDotStr = ''+this.bikes[i].distance; var beforeDotStr = '' + this.bikes[i].distance;
var beforeDot = beforeDotStr.split('.')[0]; var beforeDot = beforeDotStr.split('.')[0];
var afterDotArr = beforeDotStr.split('.')[1].split(''); var afterDotArr = beforeDotStr.split('.')[1].split('');
var afterDot = afterDotArr[0] + afterDotArr[1]; var afterDot = afterDotArr[0] + afterDotArr[1];
this.bikes[i].distance = beforeDot + '.' + afterDot; this.bikes[i].distance = beforeDot + '.' + afterDot;
this.reverseGeocode(this.platform, this.bikes[i].lat, this.bikes[i].lon, i); this.reverseGeocode(this.platform, this.bikes[i].lat, this.bikes[i].lon, i);
} }
}, (error) => console.log(error)); }, (error) => console.log(error));
...@@ -108,10 +109,10 @@ export class HomePage { ...@@ -108,10 +109,10 @@ export class HomePage {
mapStyle = "vector"; mapStyle = "vector";
mapElement = "mapElement3d"; mapElement = "mapElement3d";
} }
var defaultLayers = this.platform.createDefaultLayers(); this.defaultLayers = this.platform.createDefaultLayers();
this.map = new H.Map( this.map = new H.Map(
this[mapElement].nativeElement, this[mapElement].nativeElement,
defaultLayers[mapStyle].normal.map, this.defaultLayers[mapStyle].normal.map,
{ {
zoom: 17, zoom: 17,
pixelRatio: window.devicePixelRatio || 1 pixelRatio: window.devicePixelRatio || 1
...@@ -119,25 +120,25 @@ export class HomePage { ...@@ -119,25 +120,25 @@ export class HomePage {
); );
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(this.map)); var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(this.map));
var ui = H.ui.UI.createDefault(this.map, defaultLayers); var ui = H.ui.UI.createDefault(this.map, this.defaultLayers);
ui.removeControl("mapsettings"); ui.removeControl("mapsettings");
// create custom one // create custom one
var ms = new H.ui.MapSettingsControl({ var ms = new H.ui.MapSettingsControl({
baseLayers: [{ baseLayers: [{
label: "3D", layer: defaultLayers.vector.normal.map label: "3D", layer: this.defaultLayers.vector.normal.map
}, { }, {
label: "Normal", layer: defaultLayers.raster.normal.map label: "Normal", layer: this.defaultLayers.raster.normal.map
}, { }, {
label: "Satellite", layer: defaultLayers.raster.satellite.map label: "Satellite", layer: this.defaultLayers.raster.satellite.map
}, { }, {
label: "Terrain", layer: defaultLayers.raster.terrain.map label: "Terrain", layer: this.defaultLayers.raster.terrain.map
} }
], ],
layers: [{ layers: [{
label: "layer.traffic", layer: defaultLayers.vector.normal.traffic label: "layer.traffic", layer: this.defaultLayers.vector.normal.traffic
}, },
{ {
label: "layer.incidents", layer: defaultLayers.vector.normal.trafficincidents label: "layer.incidents", layer: this.defaultLayers.vector.normal.trafficincidents
} }
] ]
}); });
...@@ -150,6 +151,18 @@ export class HomePage { ...@@ -150,6 +151,18 @@ export class HomePage {
if (style === "3D") { if (style === "3D") {
this.map.getViewModel().setLookAtData({ tilt: 60 }); this.map.getViewModel().setLookAtData({ tilt: 60 });
} }
this.map.addEventListener('baselayerchange', (data) => {
//let mapState = this.map.getBaseLayer().getProvider().getStyleInternal().getState();
let mapConfig = this.map.getBaseLayer().getProvider().getStyleInternal().getConfig();
console.log(JSON.stringify(mapConfig));
//console.log(this.map.getLayers().asArray());
if (mapConfig === null || (mapConfig && mapConfig.sources && mapConfig.sources.omv)) {
this.map.getViewModel().setLookAtData({ tilt: 60 });
} else {
this.map.getViewModel().setLookAtData({ tilt: 0 });
}
})
this.getLocation(this.map); this.getLocation(this.map);
...@@ -166,20 +179,20 @@ export class HomePage { ...@@ -166,20 +179,20 @@ export class HomePage {
} else if (this.bikes[i].batteryPercentage < 25 && this.bikes[i].batteryPercentage >= 0) { } else if (this.bikes[i].batteryPercentage < 25 && this.bikes[i].batteryPercentage >= 0) {
this.addMarker(Number(this.bikes[i].lat), Number(this.bikes[i].lon), img[3]); this.addMarker(Number(this.bikes[i].lat), Number(this.bikes[i].lon), img[3]);
} }
} }
} }
getCurrentPosition() { getCurrentPosition() {
this.getLocation(this.map.setZoom(17)); this.getLocation(this.map.setZoom(17));
} }
getLocation(map) { getLocation(map) {
this.geolocation.getCurrentPosition( this.geolocation.getCurrentPosition(
{ {
maximumAge: 1000, timeout: 2000, maximumAge: 1000, timeout: 2000,
enableHighAccuracy: true enableHighAccuracy: true
} }
).then((resp) => { ).then((resp) => {
let lat = resp.coords.latitude let lat = resp.coords.latitude
...@@ -226,10 +239,7 @@ export class HomePage { ...@@ -226,10 +239,7 @@ export class HomePage {
} }
enable3DMaps() { enable3DMaps() {
this.is3DChecked = true; this.map.setBaseLayer(this.defaultLayers.vector.normal.map);
setTimeout(() => {
this.loadmap("3D");
}, 100);
} }
...@@ -248,7 +258,7 @@ export class HomePage { ...@@ -248,7 +258,7 @@ export class HomePage {
var streets = result.Response.View[0].Result[0].Location.Address.Street; var streets = result.Response.View[0].Result[0].Location.Address.Street;
var houseNumber = result.Response.View[0].Result[0].Location.Address.HouseNumber; var houseNumber = result.Response.View[0].Result[0].Location.Address.HouseNumber;
var zipcode = result.Response.View[0].Result[0].Location.Address.PostalCode; var zipcode = result.Response.View[0].Result[0].Location.Address.PostalCode;
this.bikes[index].address = streets; this.bikes[index].address = streets;
this.bikes[index].HouseNumber = houseNumber; this.bikes[index].HouseNumber = houseNumber;
this.bikes[index].PostalCode = zipcode; this.bikes[index].PostalCode = zipcode;
...@@ -261,8 +271,8 @@ export class HomePage { ...@@ -261,8 +271,8 @@ export class HomePage {
showBikeDetails(bike) { showBikeDetails(bike) {
this.selectedBike=bike; this.selectedBike = bike;
this.selectedBike.id=bike.id; this.selectedBike.id = bike.id;
this.isDetailsVisible = true; this.isDetailsVisible = true;
} }
reserveBike() { reserveBike() {
...@@ -273,17 +283,12 @@ export class HomePage { ...@@ -273,17 +283,12 @@ export class HomePage {
this.bikeApi = this.httpClient.get(url, { headers }); this.bikeApi = this.httpClient.get(url, { headers });
this.bikeApi.subscribe((resp) => { this.bikeApi.subscribe((resp) => {
console.log('my data: ', resp); console.log('my data: ', resp);
this.isBikeReserved=true; this.isBikeReserved = true;
this.toastService.showToast("Reservation Successful!"); this.toastService.showToast("Reservation Successful!");
}, (error) => { }, (error) => {
console.log(error) console.log(error)
this.toastService.showToast("Only one bike may be reserved or rented at a time") this.toastService.showToast("Only one bike may be reserved or rented at a time")
}); });
}); });
} }
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment