google-maps - 有什么方法可以使用 Google Maps Static API 生成地形图?
问题描述
Google Maps Static API可以做很多事情,但到目前为止,我还没有找到一种方法来使用它来生成像这样的地形(即等高线)地图,无论有无绝对海拔数。terrain
地图类型似乎只是添加阴影来指示海拔。
理想情况下,我希望静态地图 API 为我提供黑白等高线图,等高线以固定的高程增量。我相信我可以很容易地做造型,但我不知道是否有任何方法可以从静态 API 中获取轮廓数据。我知道谷歌也有一个海拔 API,但据我所知,它是为了在一个固定点或一维路径上提供海拔数据,而不是在二维地图上。
如果这是不可能的,是否有任何其他服务可以让我做类似的事情(通过 URL 请求以特定纬度/经度为中心的地形/等高线图的静态图像)?
解决方案
使用以下请求 URL ,我能够达到接近我尝试做的效果:
https://maps.googleapis.com/maps/api/staticmap
?center=sedona
&zoom=14
&size=600x600
&maptype=terrain
&style=feature:all|visibility:off
&style=feature:water|element:geometry|visibility:on
&style=feature:landscape.natural|visibility:on|color:0xffffff
&key=YOUR_API_KEY
这将呈现以下图像:
等高线仅在缩放级别 13、14 和 15 下呈现。任何更近或更远的缩放都会导致它们消失。没有办法控制等高线:颜色、线宽、高程步长、标签等等。这将它们的使用限制在浅色背景和高度变化显着的区域。
似乎也没有办法关闭高程着色,这看起来很酷,但不是我想要在我的地图中使用的东西。在城市中,它可以给出一些看起来很奇怪的结果。例如,这是旧金山:
在这种情况下,您可以看到由高程阴影引起的一些不寻常的出现伪影,这具有模糊高程轮廓线的进一步缺点。
所以,这绝不是一个完美的解决方案,但我认为它是当前 API 所能做到的最好的。
推荐阅读
- c# - 复制/设置内存中的单个字节
- xamarin - Xamarin Forms,在午夜重置变量
- c++ - 时间在二叉搜索树中返回 0
- postgresql - Postgresql:选择表名作为内容存储在另一个表中的表
- google-custom-search - 使用谷歌自定义搜索引擎下载图片
- html - 基于行宽而不是项目宽度的 CSS 网格中心(对齐)项目
- r - R foreach 函数在并行执行时失败
- vue.js - 如何在运行时用 Element-UI 按钮替换 VueJS 中的某些选定文本?
- c++ - 如何使用openCv找到矩阵的奇异值之和
- netlogo - 蛇游戏:如何根据吃的食物量增加蛇身的长度?