4

我即将使用 ESRI 产品(如 ArcGIS Server 和 Image Server)开发 Web 制图应用程序。

我在 Java Web ADF 和 Javascript 框架之间找不到很好的比较。它们当然是不同的,因为一个是完整的环境,另一个只是客户端,但它更简洁,而且开始的步骤很小。

另一个问题是 Java Web ADF 与我们当前的应用服务器(JBoss 4.2.2)不兼容,需要旧的 4.0.2 版本。

有人有经验可以帮助我吗?

非常感谢。

4

9 回答 9

5

我没有使用 Java Web ADF 的直接经验,但我使用过 .Net 版本,现在正在使用 Flex API。

我从其他开发人员那里看到和听到的 Web ADF 的主要问题是它们使用起来非常麻烦。较新的框架(Javascript、Silverlight 和 Flex)重量更轻、更易于使用,并且您可以更快地使用它们。例如,我用 .Net ADF 编写的一个测试应用程序花了我将近三周的时间才放弃它。那时我放弃了使用 ADF,只对 ArcGIS Server 进行了 WebService 调用,因为这比尝试找出 ADF 更容易。将其与在上周刚开始的类似项目中使用 Flex API 进行对比,截至今天早上,我已经有了一个几乎完整的应用程序。

我会避免使用 ADF 并使用 Javascript API。

于 2009-08-18T14:22:11.490 回答
3

你需要什么取决于你想要什么。如果您只想创建一个查看器(而不是用户可以添加(例如绘制)地理数据的应用程序),请务必使用 javascript api!

我已经使用网络 adf (v9.3) 有一段时间了,但仍然每时每刻都感到沮丧。主要是因为它缺乏适当的文档,但也有其他各种原因,例如:

  • 它要求您使用 jsf 参考实现,但它不允许您使用它的一些基本功能,例如 (f:)subviews。这使得无法使用任何模板系统,例如 facelets。
  • 您希望能够配置的许多东西都硬编码在 esri 的 jar 文件中。例如,地图必须直接位于 <form> 之下,它必须是 DOM 树的第一个元素。如果不是,则地图移动侦听器(例如 ContinueousPanListener)无法找到地图,因此无法更新地图位置。
  • 用 xml 样式对 jsp 页面进行编码是不可能的,因为 web adf 使用 xslt 在代码中的很多地方内联了片段。
  • 它的学习曲线非常陡峭,如果没有合适的文档,您将需要几天甚至几周的时间来学习如何做最琐碎的事情。其中一些最终是完全不可能或不切实际的,因为您没有采用 esri 的思维方式。
  • 默认界面不是很直观。您最终可能仍会在 javascript 中做大量工作,以使应用程序符合您的喜好。
  • 撤消功能需要一个版本化的数据库,这对于同时为超过 10 个左右的用户提供服务的应用程序是不切实际的/不可能的,此外,每次撤消操作到服务器的往返都是一种浪费。

简而言之:你可以制作一些有趣的应用程序,如果你知道你的东西,那么在这个领域有很多工作可以找到,但如果它只是为了“一些项目”,我会切换到一些......任何!其他框架,例如 openGeo..

于 2009-08-18T16:30:35.073 回答
3

Web ADF 是 ESRI 首次尝试创建 ArcGIS Server 简化 API。然而,随着时间的推移,Web ADF 最终形成了自己的抽象,这些抽象与“标准”ArcGIS Server ArcObjects API 一样复杂,并且没有那么强大。因此,我会推荐后来的化身...... javascript,flex等

于 2009-08-18T19:56:03.223 回答
0

它取决于要求。我使用 java web adf 与 java script api 相比,你可以更灵活地使用 arcobjects。我正在使用.net adf & 我想搬到 jsapi。但由于 jsapi 中 arcobject 使用的限制,我仍然使用 web adf。我认为与 web adf 相比,jsapi 仍然没有增长。对于 viwer 和小任务 js api 就可以了。但是,如果您正在创建复杂的任务和地理处理,那么坚持使用 web adf 是值得的。

于 2009-10-12T14:17:34.133 回答
0

如果您需要编辑地理空间数据,则必须使用可访问 ArcObjects 的 Web ADF。

如果您只是在查看数据,可能有些红线没有保存到您的地理数据库中,那么 JavaScript API 可以很好地工作。

地理处理可以在 JSAPI 中完成。您还可以发布模型并在 JSAPI 中使用它们。

我听说较新的 API - JavaScript API 将在不久的将来能够进行编辑。

如前所述,网络 ADF 范围广泛且相当复杂。它有一个很好的学习曲线。我刚刚开始思考它并弄清楚逻辑。我正在使用 .NET ADF v9.3.1 一旦我开始弄清楚 API,我就没有遇到很多问题。它不适合临时用户。

于 2009-10-24T06:40:09.537 回答
0

您也可以使用地理处理服务通过 JSAPI 进行编辑。2.0 版(ArcGIS Server 9.4 即将推出)将内置编辑功能。也就是说,如果计划涉及通过面向公众的网页公开对地理空间数据的编辑,则需要重新考虑该计划。如果您在内部工作,ArcGIS Engine 可能是更好的选择。

于 2009-10-28T18:55:17.653 回答
0

远离 Java Web ADF。我宁愿把热熨斗放在眼睛里,也不愿用 ADF 开发。它不适用于其他 JSF 框架,任何自定义功能都会导致您尝试开发 javascript - 但只能通过首先将 javascript 嵌入 XSL 页面片段中。这很麻烦,令人困惑,但是 - 至少它很慢。

ESRI 不建议将 Java Web ADF 用于任何新应用程序。

于 2009-12-23T23:08:35.027 回答
0

我们刚刚经历了同样的事情,如果您想要一个具有“丰富”前端的轻量级服务应用程序,而不是 ADF 膨胀,那么 ESRI REST API 似乎是可行的方法。

在他们的英国网站这里有一个很好的总结所有 ESRI 框架。

于 2010-02-05T23:36:51.743 回答
0

使用 REST API 和客户端 API(JS、Flex、Silverlight)进行编辑将在 2010 年夏季发布的版本 10(更名为 9.4 版)中可用。

这个线程现在有点老了,但我同意那些建议不要使用 Java ADF 的人。使用 JavaScript、Flex 或 Silver light API,因为它们可以更好地扩展。如果您需要在服务器上执行 GIS 操作,请在自定义 Web 服务中使用 SOAP API。仅在绝对需要时才查看 ArcObjects,然后确保使用服务器对象实用程序或扩展,以便为自己提供创建快速运行的在线应用程序的最佳机会。

http://edndoc.esri.com/arcobjects/9.2/net_server_doc/developer/samples/web_applications/arcgis_simple_server_object_extension/8e8b2bf6-1877-4c48-80fe-266f5fa70f57.htm

于 2010-05-12T19:20:37.030 回答