Map API,允许图像角点坐标,适用于非Web语言

Dav*_*vid 1 c++ delphi mapping google-maps geospatial

我被要求将地图支持从任意数量的地图API中添加到我们软件中的地理显示中.显示屏当前显示地理坐标,例如一系列GPS修正; 我们想在他们后面展示一张地图.我们使用C++ Builder 2010(偶尔使用Delphi),因此这是本机编译的软件,而不是Web应用程序.

问题是许多地图API似乎通过您指定一个点来工作,并且API返回以该点为中心的某个大小的地图.谷歌是最好的例子:指定一个中心,一个大小和比例(以像素为单位).这意味着对于你得到的图像,你不知道图像角点的地理位置(除非我错过了什么 - 这将是一个很好的答案!)这意味着你无法绘制图像作为地理情节的背景.

以另一种方式解释:窗户的左右边界为(例如)东经147度和147.2度; 南纬42.5度和42.6度的顶部和底部边界.为了用地图填充该窗口,您需要能够请求包含窗口角点的地图,并知道返回图像的坐标以便正确渲染图像.

所以,我正在寻求一个符合以下要求的好地图API的建议:

  • 允许包含四个角点的请求; 返回结果具有图像角点的已知坐标
  • 在本机代码中,可以从Web浏览器外部轻松使用.为了给你一个想法,像谷歌的静态图像 API这样的API是一个很好的答案,它易于使用,易于处理输出; 他们的Javascript API将是一个可怕的答案; 他们的Web服务API是可以接受的,但需要处理JSON或XML,因此比它需要的更难.

小智 5

OpenStreetMap允许获取由边界框指定的图像,如下所示:

http://tile.openstreetmap.org/cgi-bin/export?bbox=min_lon,min_lat,max_lon,max_lat&scale=3500&format=png

缺点是网址经常导致错误,或者是因为您要求图像太大,或者因为服务器太忙而导致错误.您可能需要考虑使用OSM数据运行自己的服务器.运行自己的服务器的另一个好处是可以调整渲染器.