ESRI宣布他们将发布ArcGIS REST API作为开放技术。我有一个运行IIS7和IIS7的ISP。

有人知道如何通过WCF编写C#来公开符合特定规范的空间表(理想情况下为ESRI)吗?

有人知道吗? ESRI的规格是?

#1 楼

看来ESRI刚刚发布了他们的GeoServices REST规范。我相信这就是您想要的。

#2 楼

我只是使用了上面发布的Jason链接。我无法想象它发布时的正式规格会大不相同。它主要是袖手旁观,启动Fiddler,使用10.0示例服务器,然后开始着手实施。没有什么是不可能的,只是乏味而又需要考虑很多小问题。我们甚至不会使我们的产品100%兼容,但是它涵盖了85%,并且所有客户端api似乎都可以很好地工作(这是我这样做的唯一原因)

这是一个演示目录(其中存在许多小错误:)
[bFlood-删除了旧链接]

我们正在AppEngine(python)上运行它,它与底层空间结构紧密耦合,但是可能可以做成一个不错的.Net WCF项目。不知道我们如何分配它

干杯
布莱恩

更新-3/8/12-我刚刚看到这篇文章在stackexchange中弹出,所以我想到了我会更新内容。如果您试用Arc2Earth Sync beta版,则可以在数分钟内运行FeatureService。后端可与Google Fusion Tables和CartoDB配合使用,但我们很快就会支持其他提供商。除了ArcView 9.2或更高版本,您不需要任何其他信息。

这是一篇博客文章,显示如何使用ArcGIS.com移动应用在几分钟内开始收集现场数据:
http:/ /www.arc2earth.com/2012/03/arc2earth-sync-live-mobile-data-collection-in-5-minutes/

评论


Brian Flood?柯克·库肯达尔(Kirk Kuykendall)?就像整个ESRI论坛乐队又回来了!

–塞巴斯蒂安·古德(Sebastian Good)
2010年7月30日在1:22

嗨,布莱恩,很高兴收到您的来信。我希望这笔赏金会诱使某人完全按照您和Jason的描述去做,并将他们的结果发布在诸如Codeplex之类的地方。如果没有,也许我会努力解决。 @Sebastian,也很高兴在这里见到你!

– Kirk Kuykendall
2010年7月30日在19:04

@kirk-是的,我希望某个社区项目在某个时候启动。它需要足够灵活以允许多个空间后端,可能是一种插件体系结构,以连接任何提供程序版本的地图/图层/功能(例如sql azure,postgis,geoserver,mapguide等)@Sebastian-是的,ESRI论坛实际有效的搜索。干杯!

–bblood
2010年8月2日于13:06

#3 楼

我所知道的esri REST API的唯一文档是在这里的联机帮助中:

http://help.arcgis.com/EN/arcgisserver/10.0/apis/rest/index.html

这是从消费者的角度而不是提供者的角度编写的,但是应该是可入侵的。

此API的某些部分是非常专有的(某些输出格式) ),并且除非这些格式规范也可用,否则不可能由开源项目实现。

此外,某些REST API并不是特别具有REST风格。例如,查看要素服务。对于添加/更新/删除/查询,似乎有单独的“端点”,而不是使用标准的HTTP动词对资源进行操作。这使我感到困惑;我知道esri那里有一些相当聪明的人,他们了解REST。我的猜测是,这些调用映射到某种SOAP接口,并且esri认为,如果他们和他们的客户之间保持一致,那么对他们和他们的客户来说将更容易。如果您只是在共享数据(而不是地图配置,元数据等),并且不着急,最好等到Microsoft弄清楚它们将如何在EDM中表示空间数据类型时再进行。有了这个功能,您就可以使用OData以及当时启用了RIA的OData轻松地创建对空间表的真正RESTful访问。就我所知,这也许是天上掉下来的。

评论


谢谢杰森。关于专有输出格式,这是一个很好的观点。首先,我只想要json,html和图像。理想情况下,我想要的是一个C#项目,该项目使用.NET 4中的WCF WebHttp Services从Sql Server 2008中获取数据并以ESRI的任何Web SDK都可以消化的形式返回。

– Kirk Kuykendall
10年7月26日在22:02

啊,对不起,是的。我错过了您要为esri客户端软件提供服务的潜台词。在这种情况下尝试实现API绝对有意义

–JasonBirch
10年7月29日在7:43

#4 楼

http://geoserver.org/display/GEOS/REST+Overview+Page

将REST服务与GeoServer一起使用

http://code.google.com/p/ geoserver-manager /

#5 楼

您是否正在考虑从SQL Server 2008 Spatial公开空间表? ESRI MapIt已经做到了这一点,我相信许可可以使拥有AGS的人员能够访问ESRI MapIt。 .nz / development / hide-databases-from-unauthorized-users-何时使用esri-mapit /

不需要自己写点东西吗? ;)

干杯

评论


嘿,吉森,这个PDF(esri.com/library/brochures/pdfs/esri-mapit.pdf)中讨论的空间数据服务是使用ESRI REST API,WCF服务还是完全不同的东西?我猜想如果您不运行AGS,则MapIt是免费的。如果是这样,对社区来说,开发一些可以直接从MS SQL Server Spatial公开ESRI REST API的东西而无需额外费用,将是有益的,特别是对于可能运行SQL Express的小型应用程序。

–JasonBirch
2010年7月31日,下午3:38

Jithen大家好:我以1.0的价格下载了MapIT的试用版,当时我需要将其安装在运行IIS的同一台计算机上。我的ISP不允许这样做。另外,我无法在开发服务器上运行MapIT,然后将网站部署到生产服务器-它必须在生产服务器上运行。也许这已经改变了?

– Kirk Kuykendall
2010年7月31日在3:43



@JasonBirch嗨,Jason,SDS是与REST API分开的实现,但提供了类似的接口,使您能够对SQL Server Spatial运行查询。查询示例:servername / SDS / databases / sandbox / dbo.PostcodeBoundaries /…如果API是,则任何人都可以读取响应。 ESRI MapIt具有许多关键和有用的功能。例如,不值得编写的即时投影和数据加载器。

– jiriteach
10年7月31日在6:22



@Kirk Hi Kirk,1.1。包括许多新功能,这些新功能主要是对加载程序的增强,同时还具有轻松部署SDS的功能。现在还包括Azure支持。 MapIt仅需要IIS和与SQL Server进行通信的功能。它实际上非常容易设置和运行,但是正如前面提到的,它们现在可以通过无头UI部署到Azure中,因此这可能对您有所帮助。干杯

– jiriteach
2010年7月31日在6:25



#6 楼

我已经在应用程序中完成了此操作。我没有完全实现完整的REST api,但是足够使查询任务正确运行和格式化JSON。我使用ASP .NET MVC构建端点。大约一年前,我尝试使用WCF进行此操作,但是JSON输出未按照这种工作方式进行格式化。 MVC的窍门是确保您具有JSONP结果,该结果将提取回调查询参数并做出正确的jsonp响应。我将尝试发布一些东西。您可以在此处查看响应:

http://www.ci.austin.tx.us/GIS/TrafficViewer/Home/JsonpIncidents/query?f=json&where=1%3D1&returnGeometry= true&spatialRel = esriSpatialRelIntersects&outFields = *&outSR = 4326&callback = dojo.io.script.jsonp_dojoIoScript2._jsonpCallback

但是,仅使用了回调参数:

http://www.ci .austin.tx.us / GIS / TrafficViewer / Home / JsonpIncidents?callback = woot

编辑:以下是如何在ASP .NET MVC中实现JSONP结果的方法。 ://stackoverflow.com/questions/758879/asp-net-mvc-returning-jsonp

编辑#2:这是我快速制作并放在保管箱上的代码示例。

http://dl.dropbox.com/u/28924446/EsriGeoServicesExampleMvc3.zip

#7 楼

听起来您可能最终会取代ArcGIS的功能。如果可以使用支持该API的系统,我建议利用现有的开放源代码项目来实现这样的系统,或者为开放源代码项目编写自己的适配器。也许存在,但我还没有看起来很努力。我不确定他们是否已经发布了完整的API规范,但是如果您急着需要,可以使用现有的API文档并针对现有的ESRI软件测试实现。

评论


感谢Dandy,我想最终会有一个开源项目。我感到奇怪的是,ESRI宣布了这一消息,但没有提供规范的链接。我什至不确定REST API规范是什么样子。只是一个规范示例和一个代码示例,该代码示例演示如何实现(使用.NET)。

– Kirk Kuykendall
2010年7月23日在21:51



我记得有人为FGDB系统开放而大肆宣传,但我认为他们只是向其开放了代码API,而不是发布规范。我不会寄希望于您,但您应该能够仅使用使用者文档轻松实现某些功能,如@JasonBirch所说。

–丹迪
2010年7月24日在21:17

#8 楼




这里有一个例子:
http://www.arcgis.com/home/item.html?id=6d28a606369c43fd9a6f929541ae7c93

#9 楼

@JasonBirch-我认为这样做的主要吸引力是能够与esri apps / apis / arcgis.com集成。如果esri廉价(免费)使用这些插件,它将变得不那么重要。我不清楚他们打算如何使用ArcGIS.com,甚至目前还没有获得许可。我将其视为可以注册Web应用程序的数据/服务的中心位置,类似于esri数据的应用商店。第三方注册多租户网络(云)应用程序,esri获减价,并且您的应用程序可立即供所有与其余api规范兼容的用户使用。因此,打开其余的api并允许尽可能多的服务与集线器集成是有意义的。地理空间数据搜索/存储正迅速走向商品化,因此将其提升一个档次并尝试控制应用程序空间。

我认为您的OData评论值得考虑,但IMO,这是可以的。更重要的是,如果没有广泛分布且广受欢迎的客户端应用程序(例如Google Earth),任何编写良好的规范都有可能在葡萄树上枯萎。并不是说OData就是这种情况,有很多MS开发人员可以在VS中免费进行此连接,但短期内我看不到。我的2美分...

(顺便说一句,评论长度似乎很短,因此是新的答案)

评论


是的,这个网站的设计目的是避免讨论:)仅供参考,FYI,Haris和我正在努力使OData与GeoREST一起使用(他正在工作,我正在na。具有扩展属性(类型为KML / GML / GeoJSON)的字符串中的几何。

–JasonBirch
2010年8月3日在22:09

听起来真的很有趣,在线上有信息吗?

–bblood
2010年8月4日在1:40

还没有,但是很想聊聊。我们已经考虑了好几次了:顺便说一句,如果包括我的@username,我会收到响应通知:)

–JasonBirch
2010年8月6日在6:43



嗯,好吧,@ JasonBirch(应该猜对了)。我们绝对可以聊天,我很乐意将OData支持从A2E云中移除(只要有一种处理几何的理智方法,但现在我知道您和哈里斯都在使用,我们都很好!)

–bblood
2010年8月6日上午11:11