如何对“地图图像”API返回的图像进行地理定位?

时间:2013-11-20 14:33:25

标签: geolocation here-api

HERE地图(旧版诺基亚地图)有各种API,其中非常有用的非桌面应用程序看起来像Map Image API。此API允许您指定center location and a zoom level to get an image以及图像大小。

如何对返回的图像进行地理配准?图像由中心和缩放级别指定,而不是由边界框或角点坐标指定。如果您需要将地图图像显示为其他地理定位数据的背景,如何找到图像角点的坐标以正确渲染地图?

我的猜测是你可以通过使用缩放级别来实现,因此,例如,特定缩放级别的任何像素大小的方形图像都具有特定的真实世界尺寸。但是,这只是猜测。 API documentation似乎没有任何内容可以解决对地图结果进行地理配准的问题。

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用nomrk参数并为左上角和右下角添加两个隐藏的poi标记 - 如同Strait of DoverMap Tile API示例英文频道。 [50N,2E - 51N,3E]

理想情况下,由于地图使用标准化的墨卡托投影,因此您应将hw指定为相同的值,并保持请求的纬度数=请求的经度数。这将确保POI位于地图的角落。

作为替代方案,还有{{3}}(需要登录),它使用标准的Tile Map Service( TMS )寻址技术。您可以使用以下方法计算所需的磁贴(示例代码使用Java)

 public void calculatePosition(int latitude, int longitude, int zoom) {
         int p= Math.pow(2, zoom); double x= longitude /Math.PI; x=(x+1)/2;
         double y= latitude/Math.PI; y = (log(tan(pi/4.0+latitude/2.0))+1)/2; y = 1 - y;
         int column=(int) x*p; int row=(int)y*p;
         System.out.println("[zoom,col,row] = " + zoom + "," + col+ "," + row);
 }