如何在Google地图上旋转叠加图像?

时间:2016-06-14 03:09:45

标签: javascript google-maps google-maps-api-3 overlay

我正在尝试将一系列叠加层放到Google地图上。我跟随sample code for ground overlays,但这只允许我使用北/南/东/西边界来指示图像放置。只要我的图像是矩形并沿着经度和纬度线定向,就可以进行工作。我真的希望能够准确地放置图像,包括自定义比例和角度方向。地面覆盖层似乎不太可能。

所以这是一个可能的用例。我正在建立一个网站,以帮助城市规划者测试停车可用性。

  • 城市规划师使用分析网站上的Google地图,使用多边形选择工具选择街道区域。
  • 网站脚本测试所选多边形区域的停车可用性。
  • 当我们完成评估后,我希望该网站将汽车的随机图像粘贴到页面中,以便用户可以更好地查看可用的内容。
  • 我可以创建汽车的矩形平面视图,但我无法弄清楚如何根据需要将图像旋转X度。垂直于北/南/东/西(NSEW)是没有问题的,但我无法对其进行调整。
  • 无论原始地图如何定位,这都应该有效。目标是用户看到建议的解决方案,在当前地图视图中完成,并进行扩展。
  • 显然,图像必须完美地缩放到可见地图,这很容易做到(可能需要进行较小的纬度长度调整。)

Parking Lot Assessment via mapping tools. (在此图中,城市规划师刚刚通过多边形选择工具选择了感兴趣的区域。下一步是评估区域,并粘贴一些停放的汽车,对齐和按比例!)

我正在研究的所有Google贴图原生叠加工具都依赖于LatLngBounds类,因此NSEW垂直对齐问题。我知道我可以计算出所需的角度,转到php服务器,按照php imagerotate旋转透明背景的.png图像,但这似乎是地理映射练习的黑客攻击。我还可以在.png文件中预先旋转汽车并将其保存为red_car_15degrees.pngblue_car_30degrees.pngwhite_pickup_45degrees.png,(三个不同的汽车x从0到45度增加5度)但是那也是一种感觉就像一个黑客。

无论如何都要在给定的所需方向角度创建自定义地图叠加层,因此我可以在汽车中分层显示城市规划师可用的内容?非常感谢。

1 个答案:

答案 0 :(得分:0)

我会在<canvas>中绘制并旋转然后将其打开。 编辑: 放置在画布上,ctx.rotatec.toDataUrl(),并在地图上叠加。