2011-08-30 200 views
0

我目前正在使用Google Maps API,并且我可以尝试使用其他免费地图API来完成我的任务。在Google地图上添加自定义图案叠加层

在我正在开发的其中一个项目中,我需要能够将多个形状叠加图层叠加到另一个上面。我最初的想法是让第一个覆盖层使用不同的纯色。对于后续的覆盖图层,我打算使用不同的颜色编码图案...例如:第二个覆盖图层使用颜色编码的条纹图案,而另一个覆盖图层使用颜色编码的校验框图案。这样,我可以堆叠这些覆盖图层来表示多个事物。对于第一个覆盖图层,我可以使用Polygon对象创建不规则形状边界,并且可以根据关联的值在多边形上设置不同的填充颜色。

经过挖掘,Google Maps API中的Polygon对象似乎只接受填充和笔触颜色,而且我似乎无法在Polygon对象上设置自定义模式。我希望它至少会采用PNG模式文件,但它不会。我可以使用的最接近的东西是GroundOverlay对象,但这不适用于我,因为它只接受2个坐标(我相信左上角和右下角),而我需要在不规则形状上创建自定义图案叠加层。

我可以使用Google Maps API或任何其他地图API(Bing,Yahoo等)完成此操作吗?是否有任何第三方API允许我在Google地图上集成自定义模式叠加层?

回答

1

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

  • 使用半透明的填充颜色。假设您有一个具有半透明红色多边形的图层,另一个图层位于具有半透明蓝色多边形的顶部 - 它们之间的重叠区域将填充组合颜色(在此情况下为紫色)。 Bing Maps当然支持多边形填充的Alpha通道,我怀疑Google Maps也是如此。
  • 而不是使用矢量形状图层,使用任何你想要的填充图案渲染你的数据作为栅格图层。将这些图层切分为根据quadkey tile编号系统编号的256px x 256px tile,并将它们作为自定义拼贴图层放置在地图上。 (即显示内置的道路地图和天花板的方式)。如果您将拼贴块渲染为PNG,则可以将多个图层堆叠在一起,并且具有透明(或半透明)区域,以显示下方图层中的数据。根据数据来源的不同,您可能会发现像Mapnik或Geoserver这样的工具可用于创建切片图层。
1

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

希望帮助...

相关问题