寻求有关通用开源软件包路线图的建议?[关闭]


17

我只是想在建议的堆栈上从开源GIS专家那里征求建议,以用于我的设想项目,因为我不完全了解大多数软件包可能的局限性。我知道我可以使用ESRI的各种程序包来做我想做的事,但是我想更便宜,更开放供全世界参观。我相信我可以接受任何挑战,并学到足够的知识来完成一个项目,我只是想避免一开始就走错了路。

我的网站愿景:就UI而言,这是一个非GIS外观的网站!在whereis.com的基础上,所有事情(或几乎所有事情)都在悬停在基础地图上方的盒子上完成。现在,这些细节并不重要,只需要强调在单独的窗格中没有带复选框的GIS层即可。在用户交互方面,注册用户可以在基础之上创建功能(例如饮水机位置,人行道等)地图,并编辑自己的功能。如果可能,请仅编辑自己创建的功能。确实是一张协作地图。

我仍然主要处于研究模式,使用各种程序包,但只是出于一般熟悉的目的,而不是真正的测试(这需要首先详细了解它们!)。作为基本数据库,PostGIS绝对是正确的选择,其中Geoserver / Mapserver是最有可能的中间件。Openlayers几乎肯定会成为草率的地图,因为我已经对它感到满意并且知道其功能。

因此,这带来了两个主要问题,需要大量建议:

1)对于这样的网站,最好的顶层UI是什么?

它是Django(甚至是Django-CMS)的自定义实例,还是GeoExt或其他库的拼凑而成的实例(不确定是否可以使用它进行登录/注册/完整UI),其他CMS /框架(不,不是drupal或任何有限制的东西!),还是完全不同的东西?

2)甚至可以让注册站点用户仅编辑他们自己的功能吗?

我想避免像OSM这样的大规模“涂鸦”场所和其他协作项目的经验。从我以前的阅读和建议看来,Geoserver无法具有功能级别的用户身份验证。

可以Mapserver吗?

我什至不知道某个站点的用户数量(来自CMS还是框架)甚至可以直接链接到geoserver / mapserver。

如果开源解决方案无法实现这样的概念,那么还有其他方法可以实现该目标吗?

经过身份验证的用户是否已编辑主要素图层的非发布版本(以免混淆原始版本)并每隔24小时自动将其合并到发布版本中,同时又保持原始副本的每日备份?

有点迷失了如何实现这一目的。

是的,我也查看过GeoNode,但是我只想要一张整体地图(保持简单),其UI要么不够互动(在进入GeoExplorer之前),要么在GeoExplorer中太像GIS。似乎也为该项目提供了解决方案。

抱歉,我在这里结束并含糊其词,但我希望能够从一条可行的道路开始,并且从现在开始几个月后不要碰壁,只是必须重新开始,因为道路从一开始,#1从未具有该功能!

我可以找到的最好的例子之一是http://www.gpsies.com。 我知道这使用了传单,但不确定底层框架和数据库。用户可以创建/上传自己的功能,但不能编辑其他人的功能。


5
有关OpenStreetMap涂鸦的内容可能有点误导;OSM偶尔会遭到故意破坏,但这是例外,不是常态。每个用户的权限存在一个明显的缺陷,即大多数用户都是短暂的,因此您将拥有未完成的数据或垃圾数据,其他人无法完成或删除它。
tmcw 2012年

这是非常正确的一点,我会牢记这一点。有了适当的备份过程,开放的模型可能是最有益的。到目前为止,我还远远没有发展,我还有很多学习和发展想法的空间。谢谢!
杰里米(Jeremy)2012年

Answers:


8

由于我现在正在构建一些类似的东西,因此我将告诉您我的操作方式,您可以选择将其更改为另一块。

Django(带有GeoDjango)非常适合作为python的基本框架(同样,如果那是您的事,您可以使用另一种语言来实现)。

我进行用户级编辑的方法类似于CaptDragon所述。我正在使用django身份验证框架。对于该项目,我的API是使用Django的Delicious Pie创建,该框架已有一个框架,可以让您轻松地考虑身份验证来创建适当的RESTful API

我Mapserver的(或利用Geoserver或任何你选择使用)将永远不会直接暴露给外界(只有本地服务器可以访问那些)......所有的瓷砖得到服务了使用瓷砖服务器(geowebcachetilecachetilestache什么)。

我不需要提及Openlayers,因为您已经选择了Openlayers。好的选择。

PostgreSQL / PostGIS是另一个明智的选择。:)

作为一个JavaScript库,jQuery绝对不会出错。如果您打算允许进行几次编辑,则可能会受益于使用诸如ribs.js之类的javascript对象的某种结构。把它和一粒盐一起吃。有些人喜欢它-有些人讨厌它。

如果您不想让您的网站看起来如此丑陋,请帮自己一个忙,并使用BootstrapCompass之类的css框架或替代产品,只需20美元,您就可以从themeforestwrapstrap中购买一个(如果您要开源,则可以如果您要购买许可证,请查看许可证)。连接其中的一项大约需要一天的时间,对您网站的外观产生巨大的影响!

就我个人而言,我已经看过Django-cms(和Pinax)了好几次,但我永远不能说服自己值得这样做。我从未后悔过这个决定。

由于您选择的项目需要架构的各种版本(开发的版本越多,更改的内容就越多),因此请使用south。甚至不要犹豫!说真的

那就是我要用的,但是关于开源的可爱之处在于,您可以根据自己的需要更改零件。


感谢您提供的信息以及其他所有人的信息。这无疑有助于缩小我的前进方向。
杰里米(Jeremy)

引导看起来很棒。您能指出使用它的任何示例地图站点吗?
斯蒂芬·利德

6

我正在使用类似于Ragi的堆栈,而我正在接近我的应用程序的Alpha版本,此时似乎选择正确。这是我的解决方案:

在服务器上:

  • Ubuntu服务器+ Apache Web服务器+ Apache Tomcat。
  • Postgresql + postgis作为数据库。
  • Geoserver,(在我的情况下,我仅将其用于栅格)。
  • Django框架+ Deliciouspie。Tastypie通过API提供所有矢量,并且用户具有“每个对象”权限。
  • python-gsconfig从python控制geoserver。
  • 碧玉报告生成PDF文件。
  • pyjasper从python控制jasper报告。
  • 用于插值的高性能地统计库。

在客户处:

  • ExtJs 4->太好了,extjs与bestpie配合得很好,您可以直接使用许多东西,例如窗口和桌子。我开始以纯代码使用它,但是我却使用了Sencha Architect 2,这很有帮助。
  • OpenLayers->通过在extjs存储中插入两个方法,在openjs层中插入一个方法,使它们在数据更改时彼此更新。

我一定会研究好吃的选择,看起来很有前途。非常有帮助!
杰里米2012年

4

注册站点用户甚至可以只编辑他们自己的功能吗?

看来使用Cartaro可以做到。它基于Drupal(我知道,您没有说过Drupal那样的限制,但是请听我说!),它允许用户仅编辑自己的功能以及其他选项。这是以管理员身份登录后从“人员”页面截取的屏幕截图,其中显示了可以为用户设置的权限类型:

Cartaro权限

此外,Cartaro可在PostGIS,GeoServer和OpenLayers上运行,因此它可能具有您想要的所有内容。

这样的网站最好的顶层UI是什么?

我不知道“最佳”顶层是什么,但是由于Drupal有许多UI选项,因此Cartaro可以提供您想要的东西。看起来Cartaro尚处于开发初期(我个人不知道使用它的人),但是它具有潜力。


1
我很欣赏这些信息,但我不知道Cartaro具有这种能力。现在,我将继续使用其他人提到的基本模型(至少从研究/学习的角度来看),但是我可能会更深入地了解此CMS。几个月前,我确实花了一个小时的时间,但起初并没有给它留下深刻的印象,但是,公平地说,我当时并没有给它太多机会。
杰里米(Jeremy)2012年

3

我将解决问题2,这是如何解决允许用户编辑自己的记录的问题。

我创建自己的Web服务RESTFUL或SOAP(您的选择),例如与UpdateUserRecord(string WKTLocation, string otherArg)您网站的身份验证机制相关联的内容。

OpenLayers和PostGIS都读写知名文本(WKT)以及GML和其他标准格式,但我个人使用WKT通过Web服务将几何信息从应用程序传回并通过表单传递到PostGIS DB中。

同样,我的Web方法UpdateUserRecord只能由经过身份验证的会话用户调用。401 Unauthorized如果其他人尝试调用此Web服务,则返回A。在我的情况下,我使用.NET和FormsAuthentication,并可以选择使用OpenAuth2(Google,Facebook,Twitter等)进行身份验证。这也可以用PHP,Java等完成。

因此,您可以创建直接调用PostGIS数据库的Web方法,并根据需要更新或插入记录。这就是我做到的方式。

然后,我将GeoServer用于WFS,WMS查询功能,并易于在地图上显示信息,如果查询需要,我将在其中提供UserID。

希望这可以帮助。


这确实有很大帮助,而且多个方面采用了相同的基本原理。我有更多的信心可以通过正确的学习重点来实现这一目标。还要感谢!
杰里米2012年
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.