如何定位'地图图像'API



HERE地图(旧的诺基亚地图)有多种API,其中对于非网络桌面应用程序最有用的是"地图图像API"。此API允许您指定中心位置和缩放级别以获得图像以及图像大小。

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

我的猜测是,你可以通过使用缩放级别来做到这一点,因此,例如,在特定缩放级别下,任何像素大小的正方形图像都将具有特定的真实世界维度。然而,这只是一个猜测。API文档中似乎根本没有任何关于地理参考地图结果的内容。

实现这一点的最简单方法是使用nomrk参数,并在左上角和右下角添加两个隐藏的poi标记,如本例中横跨英吉利海峡的多佛海峡。[50N,2E-51N,3E]

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

作为替代方案,还有Map Tile API(需要登录),它使用标准Tile Map Service(TMS)寻址技术。您可以使用以下方法计算所需的tile(示例代码是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);
 }

最新更新