通过Google Places API标记Google静态地图

时间:2016-07-28 21:02:11

标签: c# google-maps unity3d google-places-api google-static-maps

伙计们,我是这个地图上的新手,并且单独运作得非常好。我已经理解了很多概念等等。但是,我一直坚持不知道如何在静态地图上标记通过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模型放到红色圆圈上?

  • 我知道地图的中心坐标
  • 我知道公交车站的坐标
  • 我不知道的是场景中相应的三维坐标

你们能引导我找到解决方案吗?

PS:我遇到过“mercator投影”一词,但我无法将其注入我的项目中:S

1 个答案:

答案 0 :(得分:1)

我建议您按照以下步骤操作:

  1. 了解地图的边界:地图的NorthEast和SouthWest坐标。
  2. 了解地图的大小:在这种情况下,您设置640x640。
  3. 制作一个功能,将现实世界中的公交车站坐标转换为地图坐标。
  4. 示例:

    • 你的界限是:NE(91.5,12.7)和SW(87.3,8.4)。
    • 您的地图图片为600x600像素。这意味着if(0,0)in 你的照片对应左上角,或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像素。

    为Latitude做同样的事情,你就拥有它。容易,对吧?