I built a custom mapstyle based on the predefined "dark" map style in Googles old Stylewizard as well as in the cloud-platform.
Using the iOS SDK with SWIFTUI/GMSMMapsview as UIVIEWRepresentable I can either access my custom design using the mapID (from cloud-platform) or as a .json (old Stylewizad).
The maps are always depicted correctly and changed to the landscape in color or so are always applied, everything else works and can be changed (map settings...), BUT: My (white) stroke-Coloring is not applied to the 3D-Buildings. Disabling 3D Building also doesn't show at least stroked 2D-Buildings. What to do?(https://i.stack.imgur.com/AVskF.png)](https://i.stack.imgur.com/NG4DS.png)
[
{
"elementType": "geometry",
"stylers": [
{
"color": "#1d2c4d"
}
]
},
{
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#8ec3b9"
}
]
},
{
"elementType": "labels.text.stroke",
"stylers": [
{
"color": "#1a3646"
}
]
},
{
"featureType": "administrative",
"elementType": "labels",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "administrative.country",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#4b6878"
}
]
},
{
"featureType": "administrative.land_parcel",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#64779e"
}
]
},
{
"featureType": "administrative.neighborhood",
"elementType": "labels",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "administrative.province",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#4b6878"
}
]
},
{
"featureType": "landscape",
"stylers": [
{
"visibility": "on"
}
]
},
{
"featureType": "landscape",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#ffffff"
},
{
"visibility": "on"
}
]
},
{
"featureType": "landscape",
"elementType": "labels",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "landscape.man_made",
"elementType": "geometry",
"stylers": [
{
"visibility": "on"
}
]
},
{
"featureType": "landscape.man_made",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#ffffff"
},
{
"lightness": 15
},
{
"visibility": "on"
},
{
"weight": 4.5
}
]
},
{
"featureType": "landscape.man_made",
"elementType": "labels",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "landscape.natural",
"elementType": "geometry",
"stylers": [
{
"color": "#023e58"
}
]
},
{
"featureType": "poi",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "poi",
"elementType": "geometry",
"stylers": [
{
"color": "#283d6a"
}
]
},
{
"featureType": "poi",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#6f9ba5"
}
]
},
{
"featureType": "poi",
"elementType": "labels.text.stroke",
"stylers": [
{
"color": "#1d2c4d"
}
]
},
{
"featureType": "poi.park",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#023e58"
}
]
},
{
"featureType": "poi.park",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#3C7680"
}
]
},
{
"featureType": "road",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "road",
"elementType": "geometry",
"stylers": [
{
"color": "#304a7d"
}
]
},
{
"featureType": "road",
"elementType": "labels",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "road",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#98a5be"
}
]
},
{
"featureType": "road",
"elementType": "labels.text.stroke",
"stylers": [
{
"color": "#1d2c4d"
}
]
},
{
"featureType": "road.highway",
"elementType": "geometry",
"stylers": [
{
"color": "#2c6675"
}
]
},
{
"featureType": "road.highway",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#255763"
}
]
},
{
"featureType": "road.highway",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#b0d5ce"
}
]
},
{
"featureType": "road.highway",
"elementType": "labels.text.stroke",
"stylers": [
{
"color": "#023e58"
}
]
},
{
"featureType": "transit",
"elementType": "labels",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "transit",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#98a5be"
}
]
},
{
"featureType": "transit",
"elementType": "labels.text.stroke",
"stylers": [
{
"color": "#1d2c4d"
}
]
},
{
"featureType": "transit.line",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#283d6a"
}
]
},
{
"featureType": "transit.station",
"elementType": "geometry",
"stylers": [
{
"color": "#3a4762"
}
]
},
{
"featureType": "water",
"elementType": "geometry",
"stylers": [
{
"color": "#0e1626"
}
]
},
{
"featureType": "water",
"elementType": "labels",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "water",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#4e6d70"
}
]
}
]
import Foundation
import GoogleMaps
import SwiftUI
import Combine
struct GoogleMapsView: UIViewRepresentable {
@EnvironmentObject var locationManager: LocationManager
func makeUIView(context: Context) -> GMSMapView {
// let mapID = GMSMapID(identifier: "2f734a506bc5522")
let camera = GMSCameraPosition.camera(withLatitude: 0, longitude: 0, zoom: 19.0)
//let mapView = GMSMapView(frame: CGRect.zero, mapID: mapID, camera: camera)
let mapView = GMSMapView(frame: CGRect.zero, camera: camera)
mapView.mapType = .normal
mapView.isIndoorEnabled = false
mapView.isTrafficEnabled = false
mapView.isMyLocationEnabled = true
mapView.isBuildingsEnabled = true
//mapview.setBuildingsEnabled = false
mapView.settings.myLocationButton = false
mapView.settings.scrollGestures = true
mapView.settings.zoomGestures = true
mapView.settings.rotateGestures = true
mapView.settings.tiltGestures = false
mapView.settings.compassButton = false
mapView.accessibilityElementsHidden = true
/*
do {
// Set the map style by passing the URL of the local file.
if let styleURL = Bundle.main.url(forResource: "MapNormal", withExtension: "json") {
mapView.mapStyle = try GMSMapStyle(contentsOfFileURL: styleURL)
} else {
NSLog("Unable to find style.json")
}
} catch {
NSLog("One or more of the map styles failed to load. \(error)")
}
*/
return mapView
}
func updateUIView(_ mapView: GMSMapView, context: Context) {
if let myLocation = locationManager.lastKnownLocation {
let camera = GMSCameraPosition.camera(withLatitude: myLocation.coordinate.latitude, longitude: myLocation.coordinate.longitude, zoom: 25.0, bearing: locationManager.degrees, viewingAngle: 0)
// mapView.animate(to: camera)
}
}
}
type here
I tried disabling 3D-buildings. No stroked 2D-buildings-frames are shown.
I tried .json as well as building the map referencing the cloud-platform via id. No difference.
I updated the iOS SDK to 8.0.0.0 and changed the minimal deployment version iOS-version to 14.0.