将谷歌地图样式转换为谷歌静态地图 URI 时出现问题

Issue Converting Google Maps styles to Google Static Maps URI

本文关键字:URI 问题 地图 静态 样式 谷歌地图 转换 谷歌      更新时间:2023-09-26

我看到将 snazzymaps.com 地图样式转换为亮度和/或颜色转换不正确的静态地图网址时出现问题。我已经阅读了这个问题并在评论中使用了该工具。

下面是该问题的一个很好的例子:https://snazzymaps.com/style/30/cobalt

[
    {
        "featureType": "all",
        "elementType": "all",
        "stylers": [
            {"invert_lightness": true},
            {"saturation": 10},
            {"lightness": 30},
            {"gamma": 0.5},
            {"hue": "#435158"}
        ]
    }
]

给予: https://i.stack.imgur.com/zRBDY.png

使用 http://jsfiddle.net/gaby/s6Dyp/中的代码/工具,可以得到: https://i.stack.imgur.com/EN10p.png

它显然要明亮得多。显然,有些价值是错误的,但我不确定是哪一个(哪些(。修改 vals,我可以通过将伽马调整为 0.9 并将亮度调整为 10 来获得与原始结果大致相似的结果。

在我看来,转换没有问题,因为值是相同的。相反,静态地图服务似乎为相同的值提供了不同的结果。有没有人遇到过类似的问题?

静态地图 API 的 Google 文档提供了以下用于设置地图样式的选项:

  • 色调
  • 亮度
  • 饱和
  • 伽马
  • inverse_lightness
  • 能见度

该工具给出的用于将SnazzyMaps JSON转换为静态映射URL的字符串给出:

&style=特征:全部|元素:全部|invert_lightness:真|饱和度:10|亮度:30|伽玛:0.5|色调:0x435158

invert_lightness而不是inverse_lightness. 这可能是问题所在吗? 当我将其从:

http://maps.googleapis.com/maps/api/staticmap?sensor=false&size=512x512&zoom=15&center=Chicago&style=feature:all|元素:全部|invert_lightness:真|饱和度:10|亮度:30|伽玛:0.5|色调:0x435158

自:

http://maps.googleapis.com/maps/api/staticmap?sensor=false&size=512x512&zoom=15&center=Chicago&style=feature:all|元素:全部|inverse_lightness:真|饱和度:10|亮度:30|伽玛:0.5|色相:0x435158

我得到了一些非常不同的东西。

事实上,进一步阅读文档,我认为也许您应该将lightness值指定为负值:">负值会增加黑暗"。 这是否更像您希望地图的外观:

http://maps.googleapis.com/maps/api/staticmap?sensor=false&size=512x512&zoom=4&center=Chicago&style=feature:all|元素:全部|invert_lightness:真|饱和度:10|亮度:-30|伽玛:0.5|色相:0x435158