谷歌地图Javascript API如何填充建筑物的颜色

5

我知道我的问题与Google地图建筑风格非常相似。

然而,那里提供的解决方案似乎不能实现我的目标。

我试图使用自定义地图样式来更改建筑物的填充颜色。当我设置landscape.man_madegeometry.fill时,它将该颜色设置为所有城市地区的景观颜色,当我设置geometry.stroke时,则为建筑物轮廓设置该颜色。

我的问题是,我是否可以仅针对建筑物设置填充颜色,如果可以,您能否提供一个简单的代码示例,说明JSON会是什么样子?

编辑

默认情况下似乎无法实现这一点。是否有人知道如何检索featureType的几何形状?我会自己查找,但我的想法是如果可以获取该数据,则可以在地图上绘制自定义形状,对应于规划(landscape.man_made -> geometry.stroke)的轮廓,并具有所需的填充颜色。如果我找到任何信息,我会在此更新。但是如果有人已经知道如何检索信息,那将很有帮助。

3个回答

7

经过进一步的研究,我已确定使用Google Maps API无法实现我的期望结果。

似乎可以检索单个地图瓦片并处理它们,以替换默认建筑颜色为更独特的颜色,然后使用该图像查找建筑边界及其角坐标以在地图上绘制多边形。但是,这对于这样一个结果来说似乎是过多的工作和处理,特别是如果您想像我一样对屏幕上所有建筑物都进行此操作。


谢谢你的回答。关于这个话题有什么更新吗?我们如何动态地给建筑物着色,例如按年龄等基础? - Rantiev
我从未找到解决方法。该项目已经在一年前被放弃,即使在我仍在工作的时候,这也不是很重要,因为似乎不可能实现,所以在我提交答案后对着色并没有做太多工作。 - FatalKeystroke
这个好像没什么意义对吧?如果我使用geometry.stroke,建筑物会正确地用所提供的颜色标记,但当我们设置填充时,它并不只是将正方形区域填充为给定的颜色。它也会将建筑之间的空白区域用相同的颜色填充,这很奇怪。即使到了2021年,这个问题的解决方法还没有被找到。很想将特定事物的建筑物涂上不同的颜色。 - Mahesh Agrawal

3
请查阅适用于您具体需求的谷歌地图JSON样式指南
也许...
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 40.674, lng: -73.945},
zoom: 12,
styles: [
   {
     featureType: 'poi',
     stylers: [
       { "color": "#99FF33" }
     ]
   }, {
    featureType: "landscape.man_made ",
    stylers: [
       { "color": "#99FF33" }
     ]
   }
 ]
});

我尝试了这个,但它仍然只会将 poi 的子类着色。我正在尝试获取所有建筑物,包括住宅。在默认的 Google 地图中,它们被勾勒出来(landscape.mane_made -> geometry.stroke),以显示它们的存在,但我找不到填充颜色的控件。 - FatalKeystroke
1
我不知道如何解决这个问题。请查看JSON指南,了解所有可用选项。如果您解决了问题,请更新我们! - James L.
我已经仔细查看了样式指南,并尝试了几乎所有的featureType,但都没有成功。我还玩弄了https://snazzymaps.com/editor,因为它似乎非常全面,但最接近的结果与OP中描述的相同。 - FatalKeystroke
1
我有一个想法,我会去研究一下,可以看看我的编辑部分。如果我找到了解决方案,我会进行更新。 - FatalKeystroke

1

更新2022!

1

实现方法如下:

{
  featureType: "landscape.man_made.building",
  elementType: "geometry.fill",
  stylers: [ 
    { color: "#ffff00"} ]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接