6

我需要编写一个返回单个静态地图图像(png、jpg 等)的地图服务。在过去(即在谷歌地图起飞之前),这是 ArcIMS 等服务器软件的默认工作方式。现在,这些包默认提供平铺地图服务,这在大多数情况下通常是合适的解决方案。但是,在这种情况下,我的要求是返回可以通过 URL 访问的单个图像。

我知道 Google Maps 解决方案是他们的静态地图 API。如果您正在创建一个简单的地图,这很好用,但我的地图将有多边形和点覆盖,并且可能添加为标记和编码多边形 w/在 1024 字符 URL 的范围内。

我可以访问 ArcGIS Server,并且可以创建包含上述数据的地图服务,但我不知道让服务返回单个图像的最佳方法是什么。我在 ESRI 在线帮助中发现的唯一内容是能够将 OGC Web 地图服务 (WMS) 功能添加到地图服务中。您可以将地图请求为图像,但这对我来说似乎有点骇人听闻。

有谁知道是否有更好/更官方的方式?

4

2 回答 2

7

如果我理解您想要正确执行的操作,您可以利用 ArcGIS Server RESI API 来执行此操作。使用 REST API,您可以从 ArcGIS Server 地图服务中请求单个图像,并指定边界框、图像大小、图像文件类型和许多其他参数——然后您将返回该大小、类型等的单个图像。

地图服务可以是您在 ArcGIS Server(9.3 或更高版本)上发布的服务。服务可以是缓存的或动态的。您也可以使用 ArcGIS Online 服务,甚至只是为了感受一下。例如,转到以下 URL:

http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer

在页面底部的“支持的操作”下,转到导出地图。在“图像大小”文本框中输入大小(例如:1200,1200)以及任何其他参数,然后单击“导出图像”。

您可以通过查看请求的结果 URL 来了解实际的 URL 参数。您可以在此处获取有关参数的信息(例如,对于导出操作): http ://help.arcgis.com/en/arcgisserver/10.0/apis/rest/export.html

现在您提到了创建 Web 服务,因此要以编程方式执行此操作,您可以直接点击 REST API。或者,您可能希望创建自己的服务作为这些 REST API 调用的包装器。

希望这会有所帮助,我正确理解了您的问题。

于 2011-04-11T16:04:38.227 回答
4

我刚刚创建了:

  1. 一个自定义类让你这样做,你可以在这里看看: https ://github.com/esri-es/Static-Maps-API-ArcGIS
  2. 一个类似于 Google 静态地图 API 的 NodeJS 脚本: https ://github.com/esri-es/Static-Map-Service-ArcGIS

干杯,劳尔

于 2015-07-22T15:35:59.843 回答