【问题标题】:google map style - transition between day and night谷歌地图风格 - 白天和黑夜之间的过渡
【发布时间】:2018-09-10 05:58:35
【问题描述】:

有没有一种简单的方法可以在谷歌的地图样式工具中找到“标准”和“夜间”之间的中间样式:https://mapstyle.withgoogle.com/

创建样式后:

单击“完成”提供导出为 JSON 选项。

然后我们为白天复制此 JSON(基于“标准”主题),然后重复此过程以生成夜间 JSON。

没有一种主题生成功能需要两种样式并提供“中间”样式。

目的是让地图在晚上逐渐变暗,在早晨逐渐变亮。我们使用的是 JSON 输出,可以手动更改 - 但是自动方式会很棒。

【问题讨论】:

  • 页面加载时查看当前日期时间怎么样??
  • 获取时间不是问题 - 它生成的地图样式与日落和日出前后的时间相匹配,并在白天(“标准”)和夜晚之间平稳过渡。
  • @Vlad 这是一个 Android 还是 JavaScript 问题?
  • Martin - JSON 由 R 中 googleway 包中的 google_map() 函数使用。

标签: json google-maps


【解决方案1】:

您可以在那里传递带有样式的JSON String

@Override
public void onMapReady(GoogleMap map) {
    try {

        /* the inital styles to be applied */
        String jsonString = this.getCurrentMapStyles();

        MapStyleOptions style = new MapStyleOptions(jsonString);
        boolean success = map.setMapStyle(style);

        if (! success) {Log.e(TAG, "Style parsing failed.");}

    } catch (Resources.NotFoundException e) {
        Log.e(LOG_TAG, "Can't find style. Error: ", e);
    }

    /* start an update interval timer ... */
}

/* the styles, according to the current time */
private String getCurrentMapStyles() {

    long timestamp = System.currentTimeMillis() / 1000;
    String jsonString = "";

    /* styles to be generated, with some values mutated */

    return jsonString;
}

Style Reference

【讨论】:

  • 加载样式不是问题 - 问题在于创建样式
  • Martin 问“@Vlad 你所说的“创建样式”是什么意思?” - 所以我在关于我们当前如何创建白天和夜晚样式的问题中添加了更多信息 - 包括导出 JSON 弹出窗口。
  • 使用延时扭曲计时器可能有助于测试这一点;我的意思是,将24h 压缩到1m 中,这样人们就可以在很短的时间内立即看到整个进程。为了比较夜间/白天主题,您可以简单地从这两个 JSON 文件中创建一个 diff 文件,使用 subversion 或 git(比手动比较更可靠、更容易)。
  • 并且可能,甚至MapStyleOptions 也可以直接操作......而初始值总是需要与当前时间匹配。
猜你喜欢
  • 2017-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
相关资源
最近更新 更多