【问题标题】:Style Google map on iOS with NativeScript使用 NativeScript 在 iOS 上设置 Google 地图样式
【发布时间】:2017-06-01 18:00:10
【问题描述】:

我目前正在使用 this 插件在我的 NativeScript 应用程序中集成 Google 地图。他们有办法更新 Android (shown here) 的地图样式,但我找不到任何代码来更新 iOS 上的地图样式。

我还发现了 this 之前有人问过的问题,但没有提到任何 iOS 细节。

我还发现这些文档引用了 iOS 对 gMAP 的使用,但我不知道如何使用这些信息使其在我的 NativeScript 应用程序中运行。

有没有人在 iOS 上成功改过地图的颜色?

这是我当前的代码:

import { MapStyles } from "./map-style";
declare var com:any; //Typescript workaround

onMapReady(args): void {
    this.mapView = args.object;

    if (isAndroid) {
        this.mapView.gMap.setMapStyle(new com.google.android.gms.maps.model.MapStyleOptions(JSON.stringify(MapStyles)));
    }

    if (isIOS) {
        // style map for iOS
    }
}

【问题讨论】:

    标签: ios google-maps nativescript angular2-nativescript


    【解决方案1】:

    我能够使用相同的代码为 iOS 和 Android 设置样式:

    this.mapView.setStyle(<Style>JSON.parse(this.currentMapStyle));

    注意: Style 类是从 nativescript-google-maps-sdkthis.currentMapStyle 是我使用此生成的字符串成员:https://mapstyle.withgoogle.com/

    编辑
    我正在使用带有 Angular2 和 nativescript-google-maps-sdk 的 1.4.3 版的 Nativescript。我的onMapReady 函数如下所示:

    private onMapReady(args): void {
        this.mapView = args.object;
        let mapStyle = '[{"elementType":"geometry","stylers":[{"color":"#242f3e"}]},{"elementType":"labels.text.fill","stylers":[{"color":"#746855"}]},{"elementType":"labels.text.stroke","stylers":[{"color":"#242f3e"}]},{"featureType":"administrative.locality","elementType":"labels.text.fill","stylers":[{"color":"#d59563"}]},{"featureType":"poi","elementType":"labels.text.fill","stylers":[{"color":"#d59563"}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#263c3f"}]},{"featureType":"poi.park","elementType":"labels.text.fill","stylers":[{"color":"#6b9a76"}]},{"featureType":"road","elementType":"geometry","stylers":[{"color":"#38414e"}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"color":"#212a37"}]},{"featureType":"road","elementType":"labels.text.fill","stylers":[{"color":"#9ca5b3"}]},{"featureType":"road.highway","elementType":"geometry","stylers":[{"color":"#746855"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#1f2835"}]},{"featureType":"road.highway","elementType":"labels.text.fill","stylers":[{"color":"#f3d19c"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#2f3948"}]},{"featureType":"transit.station","elementType":"labels.text.fill","stylers":[{"color":"#d59563"}]},{"featureType":"water","elementType":"geometry","stylers":[{"color":"#17263c"}]},{"featureType":"water","elementType":"labels.text.fill","stylers":[{"color":"#515c6d"}]},{"featureType":"water","elementType":"labels.text.stroke","stylers":[{"color":"#17263c"}]}]'
    
        this.mapView.setStyle(<Style>JSON.parse(mapStyle));
    }
    

    【讨论】:

    • 谢谢,这很好用。我不知道为什么他们不能在这部分的文档中更清楚一点。这真的很有帮助。
    • 您使用的“nativescript-google-maps-sdk”版本是什么??
    • 你是如何让它工作的?使用这个地图根本没有样式?只是一个米色的屏幕
    • 如果您看到的是米色屏幕,则可能是您的地图实施或主题数据有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    相关资源
    最近更新 更多