我想在工作中开始制作网络地图,以便按城市绘制一些统计数据。
我有个主意,但我不确定从哪里开始。
是否有确定的资源可以提供有关如何执行此操作的逐步指导?
#1 楼
该问题已转换为社区Wiki,并且维基百科已锁定
,因为它是一个寻求答案列表的问题的示例,并且似乎很受欢迎,可以防止其被关闭。
应该视为特例,不应将其视为此问题或任何Stack Exchange网站上鼓励的问题的类型,但是如果您希望提供更多内容,然后可以自由编辑该答案。
可以选择是否使用带地图服务器组件的解决方案。服务器解决方案当然支持更多的数据和更复杂的应用。允许您将图层导出到网络地图。更新(基于汤姆·查德温的评论):
qgis2leaf和qgis-ol3现在已合并到qgis2web中。
中间的一个选项是QGIS Cloud,一个托管的QGIS Server选项:您只需准备本地项目,然后将其发布到网络上,您可以在现成的查看器中找到它。他们有免费帐户,最多可以存储一定数据量。因此,如果这对您来说是一个问题,那么您就不需要自己的服务器。
如果您要运行自己的开源服务器,则可以从去年的FOSS4G上的Geoserver简介开始:http: //workshops.opengeo.org/geoserver-intro/。所涉及的工具通常是Geoserver,PostGIS和OpenLayers。
启动成本是您的工作时间加上托管费用。
不知道用例就很难估计部署时间。
#2 楼
宾夕法尼亚州立大学有一个Open Web Mapping类。足以教您网络映射的工作原理以及所涉及的技术。该类中使用的大多数(如果不是全部)工具都是免费的,因此您的成本不成问题。这是目录:与课程材料的链接
https://www.e-education.psu.edu/geog585/node/508
课程0:方向
第1课:开放式Web映射简介
第2课:Web映射服务器(WMS)
第3课:Web功能服务器(WFS)
第4课:可扩展标记语言(XML)
第5课:高级Web地图服务器
第6课:地理标记语言(GML)
第7课:重新审视WFS
第8课:构建Web映射应用程序
第9课:构建瘦自定义Web映射客户端
玩得开心:)
#3 楼
Google Fusion Tables在映射和空间查询方面看起来很有前途优点:易于设置
缺点:您的所有数据都在google服务器上(好还是坏?)
http://sites.google.com/site/fusiontablestalks/stories
注意:许多媒体/新闻公司正在使用它-英国《卫报》报纸示例
http://www.guardian.co.uk/environment/datablog/interactive/2011/mar/07/carbon-emissions-public-buildings-map
现在有一个简洁的Fusion Wizard,可以帮助您更快地进行设置
http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/fusiontableslayer_builder.html
示例:
http://www.latimes.com/news/local/la-me-us-congress-census-map,0,4500533.html故事
最佳之一:
http://tinyurl.com/England-Deprivation-Mapped
评论
Google Mymaps是否是Google Fusion Tables的实现?似乎是相似的,其中MyMaps是基于浏览器的,而Fusion Tables是基于服务器的。
–sabre23t
16-09-21在3:06
Google Fusion Tables自2019年12月起弃用。developers.google.com/maps/documentation/javascript/reference/…
–朱拉(Juraj murcko)
1月23日9:09
#4 楼
那里有很多选择,而且已经有很多不错的答案。尚未列出的我最喜欢的两个选择是CartoDB和MapBox。两者都提供基于Web的托管和数据可视化以及一些非常精美的工具,价格从免费开始。使用台式机软件进行数据设置将使您受益。对于桌面部件,ArcMap和Quantum GIS都是不错的选择。
我想说MapBox的优势在于使用精美,易用的模板以及易于使用的用户界面元素制作精美的Web地图。 MapBox需要一个名为TileMill(也是免费的)的桌面程序,该程序使用与CSS非常相似的样式界面。
CartoDB的优势在于它通过SQL API公开了PostGIS的根源。
这两个都可以单独使用,也可以与其他JavaScript映射库(例如Leaflet,Google Maps,OpenLayers)结合使用。
无论您决定使用哪种平台开始使用Web映射,您一定会从学习一些javascript中受益。 Codecademy是一个很好的起点(也是免费的!)。
评论
为了使事情变得更加简单,“有一些工具可以将ArcGIS和QGIS项目直接导入Tilemill”
– RyanKDalton
2013年3月26日15:07
理解MapBox和CartoDB的关键是价格(地图视图,数据量)以及要显示的数据量。 CartoDB使较大的数据集更易于管理,而我建议将MapBox用于较小的项目。 Leaflet是最简单的JavaScript映射库。
–扎克
13年11月6日在18:16
#5 楼
我还参加了一个会议,他们介绍了OpenGeo套件,该套件是OpenLayers,GeoServer,GeoExt和PostGIS的堆栈。他们提供“企业版”(付费支持版本)或“社区版”(免费)版本。(更新)OpenGeo Suite现在是Boundless Suite。
另一个软件包在会议上演示的是GeoMoose,它是MapServer和OpenLayers的堆栈。想在测试机器时在机器上安装一堆东西。它预先打包了许多不同的开源GIS软件包,包括Web映射工具。
#6 楼
编辑由于这个问题和答案的普及,由于过去几个月来提供商和API的变化,我在此帖子上添加了一些内容的编辑。
< br API的选择与您的项目的范围和目的有关,更不用说您的预算,如果您实际上想使用某些特定功能。另一个主要警告是您的Web开发经验以及您喜欢或感兴趣的语言。
我认为回答您问题的最佳方法是为您提供一个不错的API清单。这是我想到的三个。这些绝不是全部!
ArcGIS
API:
JavaScript
Esri Leaflet
Silverlight(请参阅有关最新发行说明的博客文章)
Flex(请参阅有关最新发行说明的博客文章)
.NET
.. .and more(请参阅此处)
优点:
Web AppBuilder使创建Web地图应用程序对于不熟悉Web开发的人非常简单
易于使用的应用程序构建器(Flex,Silverlight和JavaScript,请牢记弃用计划)
广泛的在线论坛(大量的Exchange交流文章)
在ArcGIS堆栈中提供了许多解决方案几乎不需要开发工作,ArcGIS也是及时部署解决方案的理想选择。
许多解决方案的GitHub存储库
缺点:
价格(不是用于API的价格,而是更多信息,因此,如果要发布自己的数据,请参见ArcGIS Onl ine)
自定义应用程序代码可能很麻烦
摘要:
ArcGIS为Web GIS产品提供了很多功能,并且有很多资源可以帮助您道路。只需了解要发布自己的数据时遇到的潜在成本即可。
API:
JavaScript
移动版(Android,iOS)
到目前为止,它是Web映射中最知名的名称
扩展的JavaScript API
许多在线示例
最近,Google发布了其定价和计划,这是所提供服务的重要细分
缺点:
潜在的许可问题(请阅读服务条款)
对网络服务的限制
摘要:
Google在市场上享有盛誉,并且具有相当可靠的在线服务。只要确保了解其用法的来龙去脉,即可避免踩踏任何合法的脚趾。在这方面,新的“定价和计划”页面非常有用。
开放源代码
API(全部基于JavaScript):
传单
OpenLayers
GeoServer
非常易于使用且完全免费
不断增长的API
>
不断增长的开发人员基础都一直在发布自定义插件
面向初学者的教程
缺点:
官方支持不是众所周知,但所涉及的社区不仅有帮助(也许比商业GIS支持还要好)。
摘要:任何想测试Web GIS的人。通过社区中每天进行的更改和增强,开源可能是满足您的地理空间需求的廉价方法。
正如我所说,这并不是您拥有的所有选择,但是至少现在有一个帖子,其中包含供您自己和其他人使用的链接,以熟悉Web GIS世界中的一些主要参与者。
评论
好评论!您要更新吗?
– Fjellrev
17年2月17日在11:54
@Fjellrev-如果您有任何建议,我当然可以更新该帖子,或者可以针对该帖子缺少的内容提供一些指导。老实说,过去几年我主要专注于Esri技术,我什至不知道在这个领域中发生过许多更新。最终,我仍然觉得上面的内容提到了该领域的重磅炸弹,并提供了每个链接的最新信息。同样,如果您有任何建议,我会很乐意添加它们,只要它们适合主题即可。
–evv_gis
17年2月17日在14:54
#7 楼
看来您已经在上述问题中获得了开源答案。如果您的公司有预算,ESRI可能是一个很好的选择。需要澄清的是,Web映射API本身可以免费使用,但是后端ArcGIS Server和SDE会花费您钱。此外,将需要桌面软件来创建要在Web制图应用程序中使用的地图服务。如果您已经可以使用这些资源或可以购买这些资源,那么我绝对建议您研究一下ESRI解决方案。有针对Flex和Silverlight的ESRI特定API:Flex:http://help.arcgis.com/en/webapi/flex/index.html
Silverlight:http:// help .arcgis.com / zh-CN / webapi / silverlight / index.html
当前,似乎Web编程的趋势正在从需要插件且特定于供应商的解决方案(上)转向更开放的源代码和基于标准的框架。 ESRI包含Javascript API:
Javascript:http://help.arcgis.com/en/webapi/javascript/arcgis/
如果您看一下在这些API网站上,文档非常好。此外,论坛还提供社区帮助以解决特定问题。通过ESRI的技术支持也非常好。因此,这取决于价格和资源,如果您已经拥有这些应用程序或有预算,那么这是一条绝妙的途径,如果没有上述开源解决方案值得研究。
评论
自发布此答案以来,Esri已发布了ArcGIS Online,这可能消除了对本地ArcGIS Server和SDE的需求。有免费的开发人员计划可以上手
–斯蒂芬·李
2014年10月10日,下午3:14
#8 楼
如果您只想为可行性研究提供原型,以展示您的老板,这是我大约一年前要做的,那么对于后端,我建议您选择Geoserver,因为它的用户界面友好,并由一些人支持简单的shapefile。对于前端来说,OpenLayers是一个绝佳的选择,网站上有很多示例。无论如何,我都不是网络程序员,但是我发现复制/粘贴/调整javascript示例变得轻而易举。我使用UbuntuGIS存储库中的软件包,将所有这些都放置在VirtualBox VM中,以将其放置在一个地方,而不破坏常规的开发环境。取决于您的用例。对我来说,我最终选择了Mapserver,因为它不像Geoserver那样肿,它在lighttpd Web服务器上像快速cgi进程一样运行。我们需要WFS-T(Geoserver开箱即用),但Mapserver不需要,因此我们使用了tinyows。我们还提供Mapserver支持的coverage(WCS),并且正在考虑将Rasdaman集成为其WCS-T支持。这一切都由PostGIS数据库提供支持。
我建议您将应用程序分解为后端,中端和前端,并阅读每个软件的优缺点。每层可能只有很少的解决方案,但是结合起来会增加。
我相信ESRI可以使产品具备上述所有功能,但这会增加成本。如果您的时间不多,那么商业路线可能是正确的选择,但是开源路线正在朝着非常令人兴奋的方向发展,我怀疑最终可能会超过ESRI可以提供的一切。但是后来我成为有偏见的FOSS fanboi :)
评论
看看P.Mapper(pmapper.net)和GeoMoose(geomoose.org),使用您自己的数据进行设置非常“容易”,您可以在装有MS4W的Windows机器上进行设置,然后随着进度的进行,您可以转向Linux设置。我对p.mapper的初始步骤进行了概述,不过如果您感兴趣的话,它是西班牙语的。
–jdeltoro1973
2011年4月5日15:43
#9 楼
您可以查看MangoMap www.mangomap.com。您应该能够使用可用的工具来创建所需的地图。
它是托管且免费的,因此部署仅需很少的时间和精力。
#10 楼
对于您建议的功能,我将看看什么是最直接,最容易安装的堆栈可以满足您的需求。该软件说“您可以快速,强大或廉价。选择两个。”绝对适用于此。只需将shapefile作为数据存储直接上传到GeoServer即可,这要简单得多。如果不打算使用该功能,那么我来看看Leaflet,根据我的经验,Leaflet对于新用户的学习曲线要少得多。需要将应用托管在您自己的服务器上,那么您可以查看其中的一些托管选项,因为从投资开始您可以获得更多回报。使用MangoMap或GeoCommons,您最终可能会为用户得到一张优质的地图,而无需编写任何代码。看一下CartoDB和MapBox。如果您想了解所有这些托管平台的更多信息,我就该主题写了一本免费的电子书,其中提供了选择一个主题所需的所有详细信息。 >评论
您的免费电子书链接已损坏,因为Domaine nae正在出售。您可以编辑它并更改与保管箱或其他网站的链接吗?
– GeoStoneMarten
19-09-16在9:25
#11 楼
开发Web地图时,有很多地方可以开始。网络。在此站点上,还有其他问题可以回答,这些问题将为您提供有关可用平台之间差异的宝贵见解。解决您的业务需求。您将如何在地图上绘制数据?数据将如何更新?谁将使用这个网站?他们将如何处理?尽早做出这些决定将有助于您组装零件,或做出有助于实现目标的扩展选择。 。 选择两个。”它的正式定义为“项目管理三角”,它描述了成本,进度和范围之间的平衡,以带来质量。#12 楼
在数据库方面工作了很多年之后,我最近也开始了Web映射之旅。真正帮助我的是学习基本的编程原理,使用MapBasic for MapInfo(或者我假设使用Python作为esri人群)确实帮助我了解了计算机是如何“思考”的。这是学习编程的一种非常有趣且直观的方式。它可以带您从“ Hello World”示例到完整的功能和交互式程序。学习曲线是渐进的,并且了解到有些人对此有天赋,而其他人(例如我)却不是。
第二条建议是安装GeoServer并查看演示请求了解Web服务的结构及其工作方式。查看图层预览,以了解Javascript和HTML如何一起运行。您可以从字面上复制该“图层预览”代码(查看页面源代码),将其保存在某个地方,然后开始修改。如果您决定使用JavaScript,那么JS Fiddle也非常好。
#13 楼
如果您是Java程序员,请看一下Geomajas。然后可以添加额外的图层等。评论
GIS开发人员似乎是JavaScript的忠实拥护者,几乎找不到基于Java的Web应用程序。
–阿赫洛耶斯
13年8月20日在14:05
#14 楼
您可以将OpenLayers用于客户端。它稳定,简单,并且有大量的示例,介绍了如何使用WFS(在您的情况下连接到PostgreSQL)等。对于Geoserver,OSM将其用于渲染。您也可以看看GeoExt提供了用于构建地图的extJS小部件。 geoext再次使用OpenLayers进行地图渲染。
还有一些基于PHP的框架使用MapServer(OpenLayers已经支持),如GeoMoose,CartoWeb等。可以决定整个Web页面的设计,而与运行具有默认模板的MapScript绑定的php框架不同,我发现管理如此大的代码库并不容易。
#15 楼
html,css和javascript是大多数任何Web开发(包括Web映射)所需的三项技能。学习这些语言的资源足够。 GIS Stack交换问题“如何开始Web映射”中很好地涵盖了从何处开始学习如何开发Web映射应用程序的主题?经验就是mapbox。您可以无需任何编码即可生成Web地图,尽管我认为如果不使用javascript或python之类的脚本语言,就很难生成与示例中所用的网络地图一样复杂且具有交互性的Web地图。#16 楼
我使用leafletjs,我认为这非常简单。它基于javascript,可以使用各种数据源绘制要素。基本上,您将地图代码插入.html文件,然后查看该文件。我无法评论其他API,但我认为Google和Openlayers一样简单。此外,还有诸如MapBox之类的服务,它们不需要您托管html文件,而只需将数据上传到其中即可。
#17 楼
我认为使用qgis + qgis2leaflet插件的最简单方法。您可以编辑qgis中所需的任何内容,而不是导出到传单并上传到您的Web服务器。 />数据库管理员:navicat网络服务器:基本VPS
webgis软件包:boundlessgeo geosuit(包含:postgresql / postgis,
geoserver和geoexplorer)
geoexplorer我将使用传单javascript,因为它看起来更好并且运行更顺畅...但是要花一些时间将一些代码复制/粘贴在一起。
#18 楼
需要注意的重要一点是,Web-Gis是一个广阔的领域,并且已经在多个项目和库上完成了许多工作以帮助实现这一目标。因此,我们需要查看是否有可以重用的内容,而不是从头开始。坏消息是php中没有流行的用于Web映射的库/应用程序。好消息是您可能不需要。
我建议您首先尝试了解WebMapping,并了解已经存在的项目和库。为此,您可以参考以下问题:
如何启动Web映射?
了解Web映射工具
寻找对开发人员友好的Web gis
一旦您了解了可用的选项,则应阐明您的要求。查看您的问题,您有非常基本的要求:
在地图上显示宗地
允许查询,
获取宗地的属性并根据查询结果向用户显示,或当用户单击它时。大量数据。
我建议您使用Geoserver / OpenLayers解决方案,前提是您可以使用JavaScript。如果您的数据全部位于功能的属性中,则甚至可能不需要任何php代码。
评论
我对JQuery和其他Jscript库很满意,之前也接触过ExtJS。一个问题,如何在地图上绘制我的区域以及如何将其导出到数据库?我是否需要完全依赖于地图所包含的内容,或者可以让我在其上进行绘制?如何实现的?
–丘吉尔
13年5月15日在9:12
如果您的宗地数据可能是shapefile文件或其他格式的文件,则可以将其显示为wms图层,位于Google Maps /其他基础地图之上。此WMS层可以由Geoserver / mapserver提供服务。此外,您始终可以使用Vector图层绘制新要素。
–德瓦塔塔·滕舍
13年5月15日在10:33
#19 楼
Leaflet是OpenLayers的一个不错的轻巧替代方案,Leaflet是流行的用于Web映射的最大的JavaScript库。它确实需要自定义编码,但数量不多,并且比OpenLayers易于使用。#20 楼
在决定Leaflet和OpenLayers之前,可能值得看看即将发布的版本,该版本有望清理API和提供更好的文档:OpenLayers 3是对库的全面重写,目标是HTML5和CSS3功能。该库将继续为OpenLayers 2.x的投影,标准协议和编辑功能提供广泛的支持。该库的新版本将着重于性能改进,更轻便的构建,更漂亮的视觉组件,改进的API等。一些主要的亮点是:
- - - - - - 8< - - - - - -
一个新的代码库:这为清理OpenLayers中的某些“笨拙”的工作方式提供了机会。该团队还将使用新的API设计进行创建,这将使所有人都可以使用。使工具包脱颖而出不仅是实际代码。
http://openlayers.org/
#21 楼
我将从Google Maps API开始。它的自由和易于使用。它使用Javascript,可以通过许多好的资源来学习。如果您是JS的新手,我会推荐Codecademy。那里有许多免费的数据源,可以通过多种方式(KML,数据库,GeoRSS等)将其合并到Google Maps中。大多数州和许多大学都有免费的数据存储区,可以将其合并到您的地图中。
我最喜欢的Google Maps示例网站之一是Google Maps Mania。有很棒的地图示例,展示了此API可能实现的功能。
#22 楼
GeoPHP可能值得一看。GeoPHP是一个用于进行几何运算的开源本机PHP库。它完全用PHP编写,因此可以在共享主机上运行。它可以读写各种格式:WKT(包括EWKT),WKB(包括EWKB),GeoJSON,KML,GPX,GeoRSS。它适用于所有简单特征几何(点,线串,多边形,GeometryCollection等),并可用于获取形心,边界框,面积以及各种其他有用的信息。
您可以通过GEOS扩展(假设您具有安装GEOS的管理员权限)使用它。
使用GEOS,您可以获得完整的openGIS功能在PHP中,例如Union,IsWithin,Touches等。这意味着应用程序获得了在所有环境中均可使用的有用的几何运算“核心集”,并为安装了GEOS的环境提供了“扩展集”运算。 >
#23 楼
好吧,自定义PHP脚本可能是一个更强大(更简单)的解决方案。毕竟,空间数据只是数据库中的行,可以像往常一样查询它们。不需要繁琐的服务器GIS软件和/或可怕的OGC筛选器语法。如果我不愿意,我会将数据存储在具有PostGIS扩展名的PostgreSQL数据库中,编写PHP后端以查询数据库并检索数据GeoJSON格式(请参见本要点)和基于OpenLayers的前端Web应用程序-比Google Maps API更加灵活,但如果需要,您仍然可以使用Google基本地图。
评论
尽管此方法行之有效,但它会变得笨拙且繁琐,并带有大量数据(如县/区的包裹)。
–德瓦塔塔·滕舍
13年5月15日在10:30
#24 楼
要寻求选择的帮助,ArcGIS Online的替代问题以及哪些书,期刊,电子资源对于扩展地理信息知识最有价值?学习资源问题。Web映射成本包括托管(为网站付费)和服务器存储空间(如果您使用映射服务,请查看MapBox定价和CartoDB每月定价)。最终,了解Web开发对于创建地图非常重要。
#25 楼
好吧,您可以使用几个映射库。第一个(也许是最著名的)应该是Google Maps API,但是我认为如果您相对较新,这可能会非常复杂。 Web映射。
我建议您看一下Leaflet.js或Mapbox.js。 Mapbox.js是在考虑Leaflet的基础上构建的,并且Mapbox提供了一些出色的教程,介绍了您可以使用Mapbox.js完成的各种任务。 Leaflet还提供了一些示例和资源。
此处有一些示例的特定链接,这些链接应有助于引导您朝正确的方向前进。
Mapbox弹出窗口
Leaflet Quick
入门指南
信息
windows-Google Maps API
#26 楼
如果需要单击国家的地图并弹出图像,则可以查看链接到外部数据的Mapbox示例。您可以了解代码在项目中的JSFiddle如何交互
如果您需要有关Mapbox的更多文档,可以阅读其Mapbox指南,或使用“示例”部分深入研究代码
评论
那门课真是高达2772美元。对于那些只想探索GIS和Web Maping外壳的人来说,这当然不是一个选择。
– jar
1月22日9:56
如果在发布答案时免费且开放。显然,它现在不再免费。
– R.K.
1月24日13:11
您可以为学分课程付费,但仍可在此处获取材料。我强烈推荐。 e-education.psu.edu/geog585/node/508
–本
9月2日13:13