设计用于空间数据的API


10

我正在考虑尝试制作一个API,以便可以将一些空间数据集提供给同事进行分析。

我的部分工作是分析和准备数据,然后其他人可以将其用于进一步分析。这项工作(虽然目前规模较小,复杂程度较低)与walkscore类似,但确实涉及一些庞大的数据集。我如何共享原始数据的限制越来越多,但是我的派生作品是可共享的。我一直在考虑如何最好地共享我的分析结果(不传递大型数据集),并认为API是一种方法。构建API时,我应该考虑什么样的事情?有没有我可以遵循的设计规范?

我的愿景听起来比现在要宏伟一些,但是我认为这将是在此工作的早期考虑的有用框架。


1
您是否正在寻找现成的API,例如ArcGIS Flex Viewer或您想要进一步自定义的东西?
2011年

我想尝试定制一些东西。我目前正在使用PostGIS进行数据存储和分析,以及使用mapserver(但绝不是专家使用二者之一)。我想知道下一步将是什么使其他人可以访问并弄清楚我应该学习什么。
djq 2011年

Answers:


7

通过API,我想您是指通过HTTP POST / GET类型事件(例如Google Maps API)对数据进行某种网络访问?它是栅格数据还是矢量数据?在此讨论中,我将假定为vector。这实际上只是一种通信协议,而不是应用程序编程接口。

您不需要从头开始设计任何东西,因为有很多标准协议(而不是API本身,我在不使用API​​时会有点烦人,但我不会让您感到厌烦! )。如果您只想向客户端提供只读矢量数据,则只需要位于数据库前面的WFS服务器即可。我过去曾经使用过GeoServer,但我更喜欢TinyOWS的轻巧性。两者都做同样的工作:将它们配置为访问派生数据的数据库,将它们设置为作为Web服务器的一部分运行(Apache很常见,但我更喜欢lighttpd),您就可以找到它。QGIS可以从WFS服务器加载数据,毫无疑问,Arc可以加载数据。OpenLayers还具有WFS渲染功能,可用于基于浏览器的解决方案。在较低级别,GDAL可用于将数据从WFS转换为OGR支持的任何矢量格式。

如果您想要编辑功能,GeoServer和TinyOWS都支持WFS-T,使您的用户可以将其分析上传回服务器。

创建您自己的API确实会打败最初拥有这些标准的目的,除非您非常专业,并且对性能,性能等有特殊要求,这就是我能想到的。在没有合理资源的情况下走这条路线是一项艰巨的任务,尽管并非没有可能。


谢谢您的想法-也许我在问题中使用了API错误。我对WMS和WFS服务(栅格和矢量)都感兴趣;您的解释非常有用,因为我对此进行了更多思考。
djq 2011年

6

您有两种选择。哪种选择取决于您的数据模型,要提供的数据类型,预期的使用模型,访问控制以及交付平台(Web,HTML,Java Server,IIS,静态数据集)。

  1. 扩展现有产品以使用您的数据集。您可以考虑在您的(或专用的)计算机上托管GeoServer实例,并以此方式交付数据。如果您的数据不是GeoServer可以理解的格式,则可以选择编写Java软件包来提供该功能。优点是您具有定义明确的标准,可以同时提供可视化(WMS)和要素操作/下载(WFS)的空间信息,以及其他优点,例如地理缓存和切片。
  2. 选择您的API选项,您完全可以控制用户与其交互的方式。第一项任务涉及到定义用户与用户数据交互的方式。 数据的此接口将成为成功或失败之间的关键。如果您的界面过于开放,则可能会变得复杂且无法使用,过于简单和限制性,缓慢或无法采用。无论哪种方式,定义您希望用户访问您的数据的方式以及预期用户将要使用您的数据的方式都非常重要。

祝您好运,API并不是一件容易的事,因为您需要考虑发布方法和周期,错误修复,测试。所有这些都有助于提高可用性。我并不是说不这样做,那将是一次很棒的经历。尽管在现有产品上构建也可能是一种积极的体验。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.