6

我从snazzymaps.com下载了一个示例样式的地图。我尝试转换为http://maps.googleapis.com/maps/api/staticmap?sensor=false&size=512x512&zoom=15&​​center =Chicago 之类的网址,但我做得不好。我正在尝试转换下一个示例:

谷歌地图样式静态示例

JSON 看起来像这样:

styles: [

{"featureType":"poi","stylers":[{"visibility":"off"}]},{"stylers":[{"saturation":-70},{"lightness":37},{"gamma":1.15}]},{"elementType":"labels","stylers":[{"gamma":0.26},{"visibility":"off"}]},

{"featureType":"road","stylers":[{"lightness":0},{"saturation":0},{"hue":"#ffffff"},{"gamma":0}]},

{"featureType":"road","elementType":"labels.text.stroke","stylers":[{"visibility":"off"}]},

{"featureType":"road.arterial","elementType":"geometry","stylers":[{"lightness":20}]},

{"featureType":"road.highway","elementType":"geometry","stylers":[{"lightness":50},{"saturation":0},{"hue":"#ffffff"}]},

{"featureType":"administrative.province","stylers":[{"visibility":"on"},{"lightness":-50}]},

{"featureType":"administrative.province","elementType":"labels.text.stroke","stylers":[{"visibility":"off"}]},

{"featureType":"administrative.province","elementType":"labels.text","stylers":[{"lightness":20}]}

我已经改造了下一个,但它不起作用,我做错了什么!:S

http://maps.googleapis.com/maps/api/staticmap?sensor=false&size=512x512&zoom=15&center=Chicago&format=png&style=feature:poi%7Cvisibility:off%7Csaturation:-70%7Clightness:37%7Cgamma:1.15%7Celement:labels%7Cgamma:0.26%7Cvisibility:off&style=road%7Clightness:0%7Csaturation:0%7Chue:#ffffff%7Cgamma:0&style=road%7Celement:labels.text.stroke%7Cvisibility:off&style=road.arterial%7Celement:geometry%7Clightness:20&style=road.highway%7Celement:geometry%7Clightness:50%7Csaturation:0%7Chue:#ffffff&style=administrative.province%7Cvisibility:on%7Clightness:-50&style=administrative.province%7Celement:labels.text.stroke%7Cvisibility:off&style=administrative.province%7Celement:labels.text%7Clightness:20

如果有人可以给我一个建议,我将不胜感激。

4

1 回答 1

10

您应该阅读静态地图 API 指南的样式地图部分

自定义的“样式化”地图由一个或多个指定样式组成,每个样式通过静态地图请求 URL 中的样式参数指示。通过传递额外的样式参数来指定额外的样式。

因此,您需要将多个传递&style=给 URL。(您设计的每个功能/元素一个
您已经这样做了

对于您需要使用0xRRGGBB语法的颜色。
同样在您的示例中,JSON 中的第一行包含三个组。第二个是指地图的全局样式,第三个是指地图中的所有标签,而不是feature:poi. 所以你需要另一种feature:all风格element:labels

您链接到的 snazzymap 示例将转换为类似(并非所有样式都包括在内

  • &style=feature:poi|visibility:off
  • &style=feature:all|saturation:-70|lightness:37|gamma:1.15
  • &style=element:labels|visibility:off
  • &style=feature:road|lightness:0|saturation:0|hue:0xffffff|gamma:0
  • &style=feature:road.highway|element:geometry|lightness:50|saturation:0|hue:0xffffff

请记住,当设置visibilityoff操作该功能/元素的任何其他属性时没有意义

当添加到 url 时,你会得到

http://maps.googleapis.com/maps/api/staticmap?sensor=false&size=815x815&zoom=15&​​center=cicago&style=feature:poi|visibility:off&style=feature:all|saturation:-70|lightness:37|gamma:1.15 &style=element:labels|visibility:off&style=feature:road|lightness:0|saturation:0|hue:0xffffff|gamma:0&style=feature:road.highway|element:geometry|lightness:50|saturation:0|hue: 0xffffff


这是将 snazzymap json 转换为 Google Static Map url 的小工具。

http://jsfiddle.net/gaby/s6Dyp/上的工具

于 2014-04-18T12:20:22.973 回答