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

时间:2011-10-06 13:40:21

标签: c++ delphi google-maps mapping geospatial

我被要求将any number of map APIs之一的地图支持添加到我们软件中的地理显示中。显示屏当前显示地理坐标,例如一系列GPS修正;我们想在他们后面展示一张地图。我们使用C++ Builder 2010(偶尔Delphi),因此这是本机编译的软件,而不是网络应用。

问题是许多地图API似乎可以通过指定一个点来工作,而API会返回一个以该点为中心的某个大小的地图。谷歌就是最好的例子:specify a centre and a size and scale (in pixels)。这意味着对于你得到的图像,你不知道图像角点的地理位置(除非我错过了什么 - 这将是一个很好的答案!)这意味着你无法绘制图像作为地理情节的背景。

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

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

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

3 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:1)

使用OGC WMS GetMap request获取图片

page说明了如何获取此图片。该图片来自DEMIS,但有数千家提供商使用WMS服务

enter image description here

我建议DEMIS,但这里有一些免费的WMS服务列表。

答案 2 :(得分:0)

http://www.mapwindow.org/处的MapWinGIS.ocx可能正是您所寻找的。该控件适用于Delphi它将使用* .shp文件创建要排序的地图。它是开源的,独立于互联网。源代码不是Delphi。

几年前就提出了类似的问题:stackoOverflow上的Does any map api allow you to retrieve an exact area?对该查询的回复可能会为您提供有关如何使用Google静态图片API的建议。 OpenStreeMap类似,并且用户对Google的静态地图有一些相同的“异议”。