[swift] GoogleMapの地図のスタイルをカスタマイズする

目次

GoogleMapの地図のスタイルをカスタマイズする

iOS用GoogleMapSDKの地図のスタイルをカスタマイズすることができる

方法としては下記サイトでカスタマイズしてできたJSONファイルをアプリに組み込み、JSONファイルを読み込む

JSONファイルの作成

下記サイトにアクセスする
Google Maps APIs Styling Wizard

大まかなデザインや文字の有無などを指定してFINISH
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2017-01-09-15-16-35

JSONコードが作成されるのでコピー
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2017-01-09-15-31-05

テキストエディタなどで先程コピーしたJSONコードを貼り付け
style.jsonというファイル名で保存

xcode実装

xcodeに先程のstyle.jsonをコピー

カスタマイズしたGoogleMAPを表示させたいViewControllerに以下のコードを追加

var latitude: CLLocationDegrees = 1.304843 //Singapore
var longitude: CLLocationDegrees = 103.831824 //Singapore

override func viewDidLoad() {
        super.viewDidLoad()
        
        let width = self.view.frame.maxX
        let height = self.view.frame.maxY
        let camera: GMSCameraPosition = GMSCameraPosition.cameraWithLatitude(latitude,longitude: longitude, zoom: 15) // カメラを生成.
        googleMap = GMSMapView(frame: CGRectMake(0, 0, width, height)) // MapViewを生成.
        googleMap.mapType = kGMSTypeNormal //MAPtype標準
        googleMap.delegate = self
        googleMap.camera = camera // MapViewにカメラを追加.

        //JSONファイルを読み込み
        do {
            let styleURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("style", ofType: "json")!)
            googleMap.mapStyle = try GMSMapStyle(contentsOfFileURL: styleURL)
        } catch {
            NSLog("One or more of the map styles failed to load. \(error)")
        }
        self.view.addSubview(googleMap)//viewにMapViewを追加
        self.view.sendSubviewToBack(googleMap) //MAPを最後面に
}

注意事項:

GMSMapStyleはGoogle MAPSライブラリ2.1.0以上でないとunresolveエラーになるため、バージョンを確認し低ければUpdateすること

指定ライブラリだけをupdateする方法

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です