Reputation:
Hi I am new to Angular2/Typescript and I am trying to style a map that I added to my Angular2 project by using the Angular2 Google Maps Components but I can´t figure out how to use its not yet documented MapTypeStyle Interface. How do I use it in my module and the html? The map module works but I don´t get the styles applied. Any help appreciated.
The according Google MapsTypeStyle Reference
html:
<sebm-google-map [latitude]="lat" [longitude]="lng">
<sebm-google-map-marker [latitude]="lat" [longitude]="lng"></sebm-google-map-marker>
</sebm-google-map>
module (excerpt)
export class GmapComponent implements OnInit {
title: string = 'Current Location';
lat: number = 50.937531;
lng: number = 6.960278600000038;
constructor() { }
ngOnInit() {
}
}
Upvotes: 6
Views: 7687
Reputation: 321
<sebm-google-map *ngIf="map" [latitude]="placeLat" [longitude]="placeLng" [scrollwheel]="false" [zoom]="zoom" [disableDefaultUI]="true" [styles]='[
{
elementType : "labels.icon",
stylers : [{
visibility : "off"
}]
}]'>
Upvotes: 6
Reputation: 4683
The docs aren't very useful, so I had to dig into the code for the component.
<sebm-google-map [latitude]="lat" [longitude]="lng" [styles]="styles">
<sebm-google-map-marker [latitude]="lat" [longitude]="lng"></sebm-google-map-marker>
</sebm-google-map>
Just adding styles
should work, where styles
is of the type MapTypeStyle[]
which is declared here.
Try defining styles
as something like:
let styles = [{
"featureType": "water",
"stylers": [{
"color": "#ff0000"
}]
}];
That should make your water red, but I haven't tested this myself yet, I'm just basing it off the code.
Upvotes: 7
Reputation:
My final working solution. But I still don´t understand where and how MapTypeStyle Interface is used.
html adding [styles]="customStyle"
<sebm-google-map [latitude]="lat" [longitude]="lng" [styles]="customStyle" >
<sebm-google-map-marker [latitude]="lat" [longitude]="lng" ></sebm-google-map-marker>
</sebm-google-map>
component (excerpt) adding public customStyle = [{ "JSON style declaration goes here" }]
export class GmapComponent implements OnInit {
public customStyle = [
{
"elementType": "geometry",
"stylers": [
{
"hue": "#ff4400"
},
{
"saturation": -100
},
{
"lightness": -4
},
{
"gamma": 0.72
}
]
},
{
"featureType": "road",
"elementType": "labels.icon"
},
{
"featureType": "landscape.man_made",
"elementType": "geometry",
"stylers": [
{
"hue": "#0077ff"
},
{
"gamma": 3.1
}
]
},
{
"featureType": "water",
"stylers": [
{
"hue": "#00ccff"
},
{
"gamma": 0.44
},
{
"saturation": -33
}
]
},
{
"featureType": "poi.park",
"stylers": [
{
"hue": "#44ff00"
},
{
"saturation": -23
}
]
},
{
"featureType": "water",
"elementType": "labels.text.fill",
"stylers": [
{
"hue": "#007fff"
},
{
"gamma": 0.77
},
{
"saturation": 65
},
{
"lightness": 99
}
]
},
{
"featureType": "water",
"elementType": "labels.text.stroke",
"stylers": [
{
"gamma": 0.11
},
{
"weight": 5.6
},
{
"saturation": 99
},
{
"hue": "#0091ff"
},
{
"lightness": -86
}
]
},
{
"featureType": "transit.line",
"elementType": "geometry",
"stylers": [
{
"lightness": -48
},
{
"hue": "#ff5e00"
},
{
"gamma": 1.2
},
{
"saturation": -23
}
]
},
{
"featureType": "transit",
"elementType": "labels.text.stroke",
"stylers": [
{
"saturation": -64
},
{
"hue": "#ff9100"
},
{
"lightness": 16
},
{
"gamma": 0.47
},
{
"weight": 2.7
}
]
}
];
title: string = 'Current Location';
lat: number = 50.937531;
lng: number = 6.960278600000038;
constructor() {
}
ngOnInit() {
}
}
Upvotes: 1