在谷歌地图上添加自定义模式叠加



我目前正在使用谷歌地图API,我愿意尝试其他免费的地图API来完成我的任务。

在我正在做的一个项目中,我需要能够将多个形状叠加层相互叠加。我最初的想法是让第一个叠加层使用不同色调的纯色。对于后续的叠加层,我计划使用不同颜色编码的图案…例如:第二个叠加层使用彩色编码的条纹图案,另一个叠加层使用彩色编码的复选框图案。这样,我可以堆叠这些叠加层来表示多个东西。对于第一个叠加层,我可以使用多边形对象创建不规则形状的边界,并且可以根据相关值在多边形上设置不同的填充颜色。

挖掘后,似乎谷歌地图API中的多边形对象只接受填充和笔画颜色,我似乎无法在多边形对象上设置自定义图案。我希望它至少会采取PNG模式文件,但它没有。我可以使用的最接近的东西是GroundOverlay对象,但这不会为我工作,因为它只接受2个坐标(左上角和右下角,我相信),而我需要在不规则形状上创建自定义图案叠加。

我可以使用谷歌地图API,或任何其他地图API(必应,雅虎等)实现这一点吗?是否有任何第三方api允许我在谷歌地图上集成自定义模式覆盖?

我不相信你提到的任何api都支持图案矢量形状图层。我能想到的两个选项是:

  • 使用半透明填充色。假设你有一个半透明的红色多边形的图层,上面的另一个图层有半透明的蓝色多边形——它们之间的重叠区域将被混合的颜色填充(在这种情况下是紫色)。必应地图当然支持多边形填充的alpha通道,我怀疑谷歌地图也支持。
  • 与其使用矢量形状图层,不如将数据渲染为栅格图层,使用任何你想要的填充模式。将这些图层切割成256px x 256px的瓷砖,根据四键瓷砖编号系统进行编号,并将它们作为自定义瓷砖图层放在地图上。(即内置路线图和航拍图的显示方式)。如果你以png格式渲染你的贴图,你可以把几个图层堆叠在一起,并有透明(或半透明)的区域来显示下面图层中的数据。根据数据来源的不同,您可能会发现像Mapnik或Geoserver这样的工具对于创建tile层很有用。

如果您可以只使用笔画模式,而不是填充模式,那么最新版本的Bing地图sdk允许您在创建多边形时设置strokeDashArray。也许这足以识别你要在地图上叠加的不同形状。

最新更新