0

伙计们我是这个地图上的新东西,它的工作效果非常好。我已经理解了许多概念等。但是,我坚持认为我不知道如何在静态地图上标记通过API获取的地点。通过Google Places API标记谷歌静态地图

这里是一个静态地图一个可爱的http请求:

https://maps.googleapis.com/maps/api/staticmap?center=40.75901,-73.98447&zoom=17&scale=2&size=640x640&maptype=roadmap&markers=color:green|label:C|40.75901,-73.98447 

让我去有点详细。我尝试让他们在Unity 5上工作,并将该响应保存为纹理以放入3D模型中。这是结果:

Engine Inside Result

到目前为止好,但我无法超越。比方说,我想要巴士站,并把3d公交车站模型放到地图上。我可以得到该地区电台的坐标。现在,我怎样才能把一个3d模型放到红圈上?

  • 我知道地图的中心坐标
  • 我知道公交站的坐标
  • 我不知道是在场景中的相应的3D坐标

你们可以让我找到解决方案?

PS:我曾经遇到过一个术语“墨卡托投影”,但我想不出它注入到我的项目:S

回答

1

我建议你遵循以下步骤:

  1. 知道地图的界限:您的地图的NorthEast和SouthWest坐标。
  2. 知道地图的大小:在这种情况下,您设置640x640。
  3. 制作一个功能,将现实世界中的巴士站坐标转换为您的地图坐标。

实施例:

  • 你的边界是:NE(91.5,12.7)和SW(87.3,8.4)。
  • 您对地图的图片是600x600像素。这意味着如果(0,0) 中的图片对应于左上角,或者NW =(91.5,8.4)。
  • 图片的宽度是600,它从西到东是(12.7 - 8.4)= 4.3,这意味着每个像素在坐标中覆盖4.3/600〜= 0.00716666666667个单位。假设我们有一个坐标点(88.37,10.125),并且我们想要计算坐标:((10.125-8.4)/(12.7-8.4))* 600 = 241像素的哪个像素变为经度

对纬度做同样的事情,你就拥有它。很简单,对吧?

+0

你的解决方案似乎取决于了解地图块的边界......这基本上是OP需要首先解决的问题。 – Vanguard3000