Làm thế nào để bắt đầu lập bản đồ web?


83

Tôi muốn bắt đầu làm việc trên bản đồ web tại nơi làm việc để lập bản đồ một số thống kê của chúng tôi theo thành phố.

Tôi có một ý tưởng, nhưng tôi không chắc chắn chính xác nên bắt đầu từ đâu.

Có bất kỳ nguồn lực dứt khoát nào cung cấp hướng dẫn từng bước về cách thực hiện việc này không?

Câu trả lời:


94

Câu hỏi này đã được chuyển đổi sang Community Wiki và wiki bị khóa vì đây là một ví dụ về câu hỏi tìm kiếm danh sách các câu trả lời và dường như đủ phổ biến để bảo vệ nó khỏi bị đóng cửa. Nó nên được coi là một trường hợp đặc biệt và không nên được xem là loại câu hỏi được khuyến khích trên trang này hoặc bất kỳ trang web Stack Exchange nào, nhưng nếu bạn muốn đóng góp thêm nội dung cho nó thì hãy thoải mái làm điều đó bằng cách chỉnh sửa câu trả lời này .


Bạn có thể chọn giữa các giải pháp có thành phần máy chủ bản đồ hoặc không. Các giải pháp máy chủ tất nhiên hỗ trợ nhiều dữ liệu hơn và các ứng dụng tinh vi hơn.

Nếu bạn biết QGIS muốn tạo trực quan hóa dữ liệu một lần, tôi sẽ khuyên dùng QGIS2Leaf hoặc Xuất sang OpenLayers 3 , cả hai đều là plugin cho QGIS cho phép bạn xuất các lớp sang bản đồ web. Cập nhật (dựa trên nhận xét của Tom Chadwin): qgis2leaf và qgis-ol3 hiện đã được sáp nhập vào qgis2web .

Một cách giữa lựa chọn là QGIS đám mây , một lựa chọn tổ chức QGIS Server: Bạn chỉ cần chuẩn bị dự án tại địa phương và sau đó xuất bản nó lên web, nơi bạn sẽ tìm thấy nó trong một khán giả sẵn sàng thực hiện. Họ có tài khoản miễn phí lên đến một kích thước dữ liệu nhất định. Vì vậy, bạn không cần máy chủ của riêng mình nếu đó là một vấn đề cho bạn.

Nếu bạn muốn chạy máy chủ nguồn mở của riêng mình , bạn có thể bắt đầu với Giới thiệu về Geoserver này từ FOSS4G năm ngoái: http : // workairs.opengeo.org/geoserver-intro/ . Các công cụ liên quan thường là Geoserver, PostGIS và OpenLayers. Chi phí khởi đầu là thời gian làm việc của bạn cộng với lưu trữ.

Thật khó để ước tính thời gian để triển khai mà không biết các trường hợp sử dụng của bạn.


7
qgis2leaf và Xuất sang OpenLayers 3 hiện đã được hợp nhất vào qgis2web.
Tom Chadwin 13/07/2015

Điểm hay về qgis2web. Tôi là tác giả của một khóa học video dạy GIS từ đầu và cách xây dựng bản đồ web với qgis2web: udemy.com/gis-for-everyone/?couponCode=stackgis1
multigoodverse 4/11/2015

Tại sao phải đi qua một hệ thống GIS? Anh ta có thể đi trực tiếp từ cơ sở dữ liệu đến Tờ rơi.
Fjellrev

@Fjellrev thế nào? Truy vấn để giải nén như GeoJSON? Tôi cho rằng điều đó khó hơn việc sử dụng một hệ thống GIS.
Tom Chadwin

Bạn có thể khám phá GeoGATE liên kết , GeoGATE thật tuyệt vời với PostGIS & Geoserver và bao gồm hàng trăm công cụ được tạo sẵn mà bạn có thể định cấu hình thông qua bảng điều khiển thân thiện với người dùng với dữ liệu của bạn
Hani Draidi

41

Penn State có một lớp Bản đồ Web mở . Nó là đủ để dạy cho bạn cách lập bản đồ web hoạt động, và cả các công nghệ liên quan. Hầu hết, nếu không phải tất cả, các công cụ được sử dụng trong lớp đều miễn phí, do đó chi phí của bạn không phải là vấn đề. Đây là TOC:

Bài học 0: Định hướng

Bài học 1: Giới thiệu về lập bản đồ web mở

Bài 2: Máy chủ bản đồ web (WMS)

Bài học 3: Máy chủ tính năng web (WFS)

Bài học 4: Ngôn ngữ đánh dấu mở rộng (XML)

Bài 5: Máy chủ bản đồ web nâng cao

Bài 6: Ngôn ngữ đánh dấu địa lý (GML)

Bài 7: Xem lại WFS

Bài 8: Xây dựng ứng dụng bản đồ web

Bài học 9: Xây dựng một máy khách ánh xạ web tùy chỉnh mỏng

Chúc vui vẻ :)


40

Google Fusion Bàn trông có vẻ đầy hứa hẹn với các truy vấn ánh xạ và không gian

ưu: dễ cài đặt

Nhược điểm: tất cả dữ liệu của bạn là trên máy chủ google (tốt? hay xấu?)

http://sites.google.com.vn/site/fusiontableestalks/stories

nhập mô tả hình ảnh ở đây

Lưu ý: Rất nhiều phương tiện truyền thông / tin tức Các công ty đang sử dụng nó - Ví dụ Báo Guardian của Vương quốc Anh http://www.guardian.co.uk/envir/datablog/interactive/2011/mar/07/carbon-emissions-public-buildings-map

Hiện tại có một Trình hướng dẫn Fusion gọn gàng để giúp bạn thiết lập nhanh hơn http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/fusiontableslayer_builder.html

Ví dụ: http://www.latimes.com/news/local/la-me-us-congress-crade-map,0,4500533.htmlstory

Một trong những điều tốt nhất: http://tinyurl.com/England-Deprivation-Mapped


1
Google MyMaps một thực hiện bảng Fusion Google? Có vẻ tương tự, với MyMaps dựa trên trình duyệt, nhưng Fusion Table là máy chủ.
sabre23t

40

Có rất nhiều lựa chọn ngoài kia và nhiều câu trả lời tuyệt vời rồi. Hai lựa chọn yêu thích của tôi chưa được liệt kê ở đây là CartoDBMapBox . Cả hai đều cung cấp lưu trữ dựa trên web và trực quan hóa dữ liệu và một số công cụ rất lạ mắt với giá bắt đầu từ MIỄN PHÍ.

Bạn sẽ được hưởng lợi từ việc có phần mềm máy tính để bàn để thiết lập dữ liệu của bạn. ArcMap và Quantum GIS đều là những lựa chọn tuyệt vời cho phần máy tính để bàn.

Tôi muốn nói sức mạnh của MapBox được thành lập bản đồ web đẹp với thực sự tuyệt vời, dễ sử dụng mẫu và sẵn sàng để đi các yếu tố giao diện người dùng . MapBox yêu cầu một chương trình máy tính để bàn có tên là TileMill (cũng miễn phí), sử dụng giao diện tạo kiểu rất giống với CSS.

Điểm mạnh của CartoDB là nó phơi bày nguồn gốc PostGIS của mình thông qua API SQL.

Cả hai thứ này đều có thể được sử dụng riêng hoặc kết hợp với các thư viện ánh xạ javascript khác (ví dụ: Leaflet , Google Maps , OpenLayers ).

Cho dù bạn quyết định bắt đầu sử dụng nền tảng nào để lập bản đồ web, bạn chắc chắn sẽ được hưởng lợi từ việc học một số javascript. Codecademy là một nơi tuyệt vời để bắt đầu (cũng MIỄN PHÍ !!).


2
Để làm cho mọi việc trở nên dễ dàng hơn, có "Có công cụ nhập trực tiếp các dự án ArcGIS và QGIS vào Tilemill"
RyanDalton

2
Chìa khóa để hiểu MapBox và CartoDB là giá cả (lượt xem bản đồ, lượng dữ liệu) và lượng dữ liệu bạn đang hiển thị. CartoDB làm cho các bộ dữ liệu lớn hơn dễ quản lý hơn trong khi tôi sẽ đề xuất MapBox cho các dự án nhỏ hơn. Tờ rơi là nhẹ nhất và dễ nhất để tìm hiểu các thư viện ánh xạ JavaScript.
Zach

37

Tôi cũng vừa tham dự một hội nghị nơi họ trình bày OpenGeo Suite , đó là một nhóm OpenLayers, GeoServer, GeoExt & PostGIS. Họ cung cấp cả phiên bản "Phiên bản doanh nghiệp" (trả tiền cho phiên bản có hỗ trợ) hoặc phiên bản " Phiên bản cộng đồng " (miễn phí). (Cập nhật) OpenGeo Suite hiện là Boundless Suite.

Một gói khác đã được trình diễn tại hội nghị là GeoMoose , đó là một gói MapServer và OpenLayers.

Bạn có thể xem xét tải xuống OSGEO Live DVD , bạn có thể chạy trong môi trường máy ảo trong trường hợp bạn không muốn cài đặt một loạt các thứ trên máy trong khi thử nghiệm nó. Nó được đóng gói sẵn với một loạt các gói phần mềm GIS nguồn mở khác nhau, bao gồm các công cụ lập bản đồ web.


29

Biên tập

Do sự phổ biến của câu hỏi và câu trả lời này, tôi đang thêm chỉnh sửa một số nội dung trên bài đăng này do những thay đổi với nhà cung cấp và API trong vài tháng qua.


Lựa chọn API có liên quan đến phạm vi và mục đích của dự án của bạn, chưa kể ngân sách của bạn nếu thực tế bạn muốn sử dụng một số chức năng cụ thể. Một cảnh báo quan trọng khác là kinh nghiệm phát triển web của bạn và ngôn ngữ bạn thích hoặc có hứng thú với ngôn ngữ nào.

Tôi nghĩ cách tốt nhất để trả lời câu hỏi của bạn là cung cấp một danh sách các API có sẵn cho bạn. Đây là ba mà đến với tâm trí. Đây không phải là tất cả trong số họ!

ArcGIS

API:

Ưu điểm:

  • Các AppBuilder Web đã tạo ra ứng dụng bản đồ web rất đơn giản cho những người không thành thạo trong việc phát triển web
  • Các nhà xây dựng ứng dụng dễ sử dụng ( Flex , SilverlightJavaScript , chỉ cần chú ý đến các kế hoạch không dùng nữa)
  • Diễn đàn trực tuyến mở rộng ( Rất nhiều bài viết về trao đổi ngăn xếp )
  • Với nhiều giải pháp có sẵn trong ngăn xếp ArcGIS đòi hỏi ít hoặc không có công việc phát triển, ArcGIS cũng có thể là một lựa chọn tốt để triển khai các giải pháp kịp thời.
  • Kho GitHub cho nhiều giải pháp

Nhược điểm:

  • Giá (không sử dụng API, nhưng hơn thế nữa nếu bạn muốn xuất bản dữ liệu của riêng mình, hãy xem ArcGIS Online )
  • Tùy chỉnh mã ứng dụng có thể rườm rà

Tóm lược:

ArcGIS có rất nhiều thứ để cung cấp cho các sản phẩm web GIS và có nhiều tài nguyên để giúp bạn trên đường đi. Chỉ cần lưu ý về các chi phí tiềm năng bạn gặp phải khi muốn xuất bản dữ liệu của riêng bạn.

Google

API:

  • JavaScript
  • Di động (Android, iOS)

Ưu điểm:

  • Cho đến nay, tên được công nhận nhất trong bản đồ web
  • API mở rộng
  • Nhiều mẫu trực tuyến
  • Gần đây, Google đã phát hành Giá và Gói của họ , đây là một sự cố lớn về dịch vụ được cung cấp

Nhược điểm:

Tóm lược:

Google có một tên tuổi mạnh trên thị trường và các dịch vụ trực tuyến khá đáng tin cậy. Chỉ cần chắc chắn để hiểu các phần trong và ngoài công dụng của chúng, vì vậy bạn không bước lên bất kỳ ngón chân hợp pháp nào. Trang Giá và Gói mới khá hữu ích trong vấn đề đó.

Mã nguồn mở

API (tất cả dựa trên JavaScript):

Ưu điểm:

Nhược điểm:

  • Hỗ trợ chính thức không được biết đến NHƯNG cộng đồng tham gia không chỉ hữu ích (thậm chí còn tốt hơn cả hỗ trợ GIS thương mại)

Tóm lược:

Nguồn mở thực sự là một lựa chọn tuyệt vời cho bất kỳ ai muốn thử nghiệm các vùng nước của Web GIS. Với những thay đổi và cải tiến được thực hiện mỗi ngày trong cộng đồng, nguồn mở có thể là cách rẻ tiền để giải quyết các nhu cầu không gian địa lý của bạn.


Như tôi đã nói, đây không phải là tất cả các lựa chọn mà bạn có, nhưng ít nhất bây giờ có một bài đăng với các liên kết cho chính bạn và những người khác để làm quen với một số người chơi chính trong thế giới Web GIS.


Nhận xét tốt! Bạn có muốn cập nhật nó?
Fjellrev

@Fjellrev - Tôi chắc chắn có thể cập nhật bài đăng nếu bạn có đề xuất hoặc có thể cung cấp một số hướng dẫn về nội dung bài đăng bị thiếu. Thành thật mà nói, tôi chủ yếu tập trung vào công nghệ Esri trong vài năm qua, rằng tôi thậm chí sẽ không biết nhiều cập nhật đã xảy ra trong không gian này. Cuối cùng, tôi vẫn cảm thấy nội dung trên đề cập đến những người chơi nặng trong không gian và cung cấp các liên kết đến thông tin hiện tại cho mỗi người. Một lần nữa, nếu bạn có bất kỳ đề xuất nào, tôi sẽ vui lòng thêm chúng miễn là chúng phù hợp với chủ đề.
evv_gis

25

Có vẻ như bạn đã nhận được câu trả lời Nguồn mở trong câu hỏi trên. Nếu công ty của bạn có ngân sách, ESRI có thể là một lựa chọn rất tốt. Để làm rõ, các API webmapping trong và bản thân chúng đều miễn phí sử dụng, tuy nhiên, ArcGIS Server và SDE phụ trợ sẽ khiến bạn mất tiền. Ngoài ra, phần mềm máy tính để bàn sẽ cần thiết để tạo các dịch vụ bản đồ được sử dụng trong ứng dụng bản đồ web. Nếu bạn đã có quyền truy cập vào các tài nguyên này hoặc có thể mua chúng, tôi chắc chắn sẽ khuyên bạn nên xem xét các giải pháp ESRI.

Một lợi ích ở đây là bạn có thể viết mã bằng nhiều ngôn ngữ. Có các API cụ thể ESRI cho Flex và Silverlight:

Flex: http://help.arcgis.com/en/webapi/flex/index.html Silverlight: http://help.arcgis.com/en/webapi/silverlight/index.html

Hiện tại, dường như xu hướng lập trình web đang chuyển dần khỏi các giải pháp yêu cầu bổ trợ và dành riêng cho nhà cung cấp (ở trên) và hướng tới các khung dựa trên tiêu chuẩn và nguồn mở hơn. ESRI có cái này được bao phủ bởi API Javascript:

Javascript: http://help.arcgis.com/en/webapi/javascript/arcgis/

Nếu bạn xem các trang web API này, tài liệu rất tốt. Ngoài ra, các diễn đàn có sẵn để giúp đỡ cộng đồng về các vấn đề cụ thể. Hỗ trợ kỹ thuật thông qua ESRI cũng rất tốt. Vì vậy, giá cả và tài nguyên, nếu bạn đã có các ứng dụng này hoặc có ngân sách thì đây là một con đường tuyệt vời, nếu không các giải pháp nguồn mở ở trên rất đáng để xem xét.


4
Kể từ khi câu trả lời này được đăng, Esri đã phát hành ArcGIS Online , có khả năng loại bỏ nhu cầu về ArcGIS Server và SDE tại chỗ. Có các kế hoạch phát triển miễn phí có sẵn để bắt đầu
Stephen Lead

20

Nếu bạn muốn đơn giản tạo nguyên mẫu một cái gì đó cho một nghiên cứu khả thi để hiển thị cho sếp của bạn, đó là những gì tôi phải làm cách đây một năm, thì đối với phần phụ trợ tôi muốn giới thiệu Geoserver vì giao diện web thân thiện với người dùng, được hỗ trợ bởi một số shapefiles đơn giản. Đối với frontend, OpenLayers là một lựa chọn tuyệt vời với rất nhiều mẫu trên trang web. Tôi không phải là một lập trình viên web bằng bất kỳ cách nào, nhưng tôi thấy việc sao chép / dán / chỉnh sửa các mẫu javascript rất dễ dàng. Tôi đặt tất cả những thứ này trong một VirtualBox VM để giữ tất cả ở một nơi và không phá vỡ môi trường dev thông thường của tôi, sử dụng các gói từ kho lưu trữ UbuntuGIS.

Đối với sản xuất, có một loạt các công cụ ngoài đó phụ thuộc vào trường hợp sử dụng của bạn. Đối với tôi, cuối cùng tôi đã đi với Mapserver vì nó không phình to như Geoserver, chạy như một quy trình nhanh trên máy chủ web lighttpd. Chúng tôi cần WFS-T (Geoserver hỗ trợ ngoài hộp), nhưng Mapserver thì không, vì vậy chúng tôi đã sử dụng các công cụ nhỏ. Chúng tôi cũng phục vụ bảo hiểm (WCS), mà Mapserver hỗ trợ và chúng tôi đang tìm cách tích hợp Rasdaman để hỗ trợ WCS-T. Tất cả điều này được hỗ trợ bởi cơ sở dữ liệu PostGIS.

Tôi khuyên bạn nên chia nhỏ ứng dụng của mình thành back-end, middle- và front-end và đọc những ưu và nhược điểm của từng phần mềm. Có thể chỉ có một vài giải pháp cho mỗi lớp, nhưng điều đó làm tăng kết hợp.

Tôi tin rằng ESRI tạo ra các sản phẩm có khả năng làm tất cả điều này, nhưng điều này sẽ có giá. Nếu thời gian của bạn ở mức cao, thì tuyến thương mại có thể là con đường để đi, nhưng tuyến nguồn mở đang đi theo một số hướng rất thú vị và tôi nghi ngờ cuối cùng sẽ vượt xa mọi thứ ESRI có thể đưa ra. Nhưng sau đó tôi là một fanboi FOSS thiên vị :)


2
Hãy xem P.Mapper ( pmapper.net ) và GeoMoose ( geomoose.org ) chúng khá "dễ dàng" để thiết lập với dữ liệu của riêng bạn, bạn có thể thực hiện trên hộp Windows với MS4W và sau đó, khi bạn tiến hành, bạn có thể chuyển sang thiết lập Linux. Tôi có một phác thảo về các bước ban đầu cho p.mapper bằng tiếng Tây Ban Nha, trong trường hợp bạn quan tâm.
jdeltoro1973

18

Bạn có thể xem MangoMap www.mangom.com .

Bạn sẽ có thể tạo bản đồ mà bạn muốn với các công cụ có sẵn.

Nó được lưu trữ và miễn phí, vì vậy cần rất ít thời gian và công sức để triển khai.


14

Đối với các tính năng mà bạn gợi ý, tôi sẽ xem xét đâu là ngăn xếp đơn giản và dễ cài đặt nhất đáp ứng nhu cầu của bạn. Phần mềm có nội dung "Bạn có thể có nhanh, mạnh hoặc rẻ. Chọn hai." chắc chắn áp dụng ở đây.

Nếu bạn chỉ có kế hoạch thực hiện các truy vấn đơn giản như xác định các tính năng thì sức mạnh của PostGIS có thể là quá mức cần thiết. Đơn giản hơn nhiều khi chỉ cần tải lên các shapefiles dưới dạng kho dữ liệu trực tiếp vào GeoServer.

OpenLayers một lần nữa rất tuyệt và có nhiều chức năng như hỗ trợ cho các hệ thống tọa độ khác ngoài WGS84 và Web Mercator nhưng nếu bạn không sử dụng chức năng đó thì tôi sẽ xem xét Leaflet , theo kinh nghiệm của tôi thì nó ít hơn nhiều đường cong học tập dốc cho người dùng mới.

Ngoài ra nếu bạn không có yêu cầu nói rằng bạn cần lưu trữ ứng dụng trên máy chủ của riêng mình thì bạn có thể xem một số tùy chọn được lưu trữ vì bạn sẽ nhận lại được nhiều hơn từ thời gian đầu tư. Sử dụng MangoMap hoặc GeoCommons, bạn có thể sẽ có một bản đồ ưu việt cho người dùng của mình mà không phải viết một dòng mã nào.

Nếu đây là một dự án mà bạn muốn viết một số mã thì bạn cũng có thể xem CartoDBMapBox . Nếu bạn muốn biết thêm về tất cả các nền tảng được lưu trữ này, tôi đã viết một ebook miễn phí về chủ đề cung cấp tất cả các chi tiết bạn cần để chọn một.

Tiết lộ : Tôi là người sáng lập MangoMap


liên kết ebook miễn phí của bạn bị hỏng vì domaine nae được bán. Bạn có thể chỉnh sửa nó và thay đổi liên kết với dropbox hoặc trang web khác không?
GeoStoneMarten

13

Có rất nhiều nơi để bắt đầu khi phát triển bản đồ web.

Nếu bạn có kinh nghiệm làm nhà phát triển web, bạn nên bắt đầu bằng cách điều tra các dịch vụ khác nhau có sẵn cho phép bạn xuất bản bản đồ trên web. Có những câu hỏi khác được trả lời ở đây trên trang web này sẽ cung cấp cho bạn cái nhìn sâu sắc có giá trị về sự khác biệt giữa các nền tảng có sẵn.

Nếu bạn đang bắt đầu mới và không muốn cam kết với một nền tảng cụ thể, thì hãy giải quyết các yêu cầu kinh doanh của bạn. Làm thế nào bạn sẽ vẽ dữ liệu của bạn trên bản đồ? Dữ liệu sẽ được cập nhật như thế nào? Ai sẽ sử dụng trang web này? Họ sẽ làm gì với nó? Đưa ra những quyết định sớm sẽ giúp bạn lắp ráp các mảnh hoặc đưa ra các lựa chọn sẽ hỗ trợ mở rộng hướng tới mục tiêu.

Về chi phí ... Tôi thích mượn một câu tục ngữ hiện đại: "Tốt, nhanh, rẻ. Chọn hai." Nó chính thức được định nghĩa là Tam giác quản lý dự án , mô tả sự cân bằng giữa chi phí, lập lịch và phạm vi để mang lại chất lượng.


12

Gần đây tôi cũng đã bắt đầu hành trình lập bản đồ web sau nhiều năm về phía cơ sở dữ liệu.

Điều thực sự giúp tôi là học các nguyên tắc lập trình cơ bản, sử dụng MapBasic cho MapInfo (hoặc tôi giả sử Python cho đám đông esri) thực sự giúp tôi hiểu máy tính "nghĩ" như thế nào.

Từ đó CodeAcademy là một ơn trời. Đó là một cách thực sự thú vị và trực quan để học lập trình. Nó có thể đưa bạn từ các ví dụ "Hello World" đến các chương trình tương tác và đầy đủ chức năng. Quá trình học tập dần dần và hiểu rằng một số người có năng khiếu với những thứ này và những người khác (như tôi) thì không.

Lời khuyên thứ hai sẽ là cài đặt GeoServer và xem xét các yêu cầu demo để xem cách các dịch vụ web được cấu trúc và cách chúng hoạt động. Hãy xem các bản xem trước của lớp để xem cách Javascript và HTML hoạt động cùng nhau. Bạn có thể sao chép mã Layer Preview đó (xem nguồn trang) theo nghĩa đen, lưu nó ở đâu đó và bắt đầu mày mò.

Các trường W3 - có các ví dụ tương tác mà bạn có thể chơi và thích nghi với mã còn non trẻ của mình. Nếu bạn quyết định về JavaScript, JS Fiddle cũng rất tốt.


11

Nếu bạn là một lập trình viên Java, hãy xem Geomajas .

Có một kiểu mẫu maven cho phép bạn bắt đầu trong vài phút ( xem tại đây ). Sau đó, bạn có thể thêm các lớp bổ sung, vv


Các nhà phát triển GIS dường như là những người hâm mộ JavaScript tuyệt vời như vậy, gần như là duy nhất để tìm một ứng dụng web dựa trên java.
Akheloes

9

Bạn có thể sử dụng OpenLayers cho phía khách hàng. Nó ổn định, dễ dàng và có rất nhiều ví dụ về cách sử dụng WFS (trong trường hợp của bạn để kết nối với PostgreQuery), v.v. Geoserver, OSM sử dụng nó cho mục đích kết xuất.

Bạn cũng có thể có một cái nhìn tại GeoExt cung cấp ExtJS phụ tùng cho việc xây dựng bản đồ. Một lần nữa Geoext sử dụng OpenLayers để hiển thị bản đồ.

Ngoài ra còn có khung dựa trên PHP sử dụng MapServer (OpenLayers đã hỗ trợ) như GeoMoose , CartoWeb , v.v.

Tôi bỏ phiếu cho OpenLayers vì bạn có thể quyết định toàn bộ thiết kế trang web không giống như khung php chạy trên các ràng buộc MapScript có mẫu mặc định và tôi thấy không dễ để quản lý một cơ sở mã lớn như vậy.


8

Ba kỹ năng cần thiết cho hầu hết mọi phát triển web, bao gồm lập bản đồ web là html, css và javascript. Tài nguyên để học những ngôn ngữ đó là phong phú. Chủ đề về nơi bắt đầu học cách phát triển các ứng dụng bản đồ web được đề cập khá rõ trong câu hỏi trao đổi Stack của GIS Làm thế nào để bắt đầu lập bản đồ web?

Một tài nguyên để xem xét việc phát triển các ứng dụng bản đồ web nếu bạn có kinh nghiệm lập trình hạn chế là mapbox . Bạn có thể tạo bản đồ web mà không cần bất kỳ mã hóa nào, mặc dù tôi nghĩ rằng sẽ khó tạo ra một bản đồ web phức tạp và tương tác như bản đồ bạn sử dụng trong ví dụ của mình mà không sử dụng ngôn ngữ kịch bản như javascript hoặc python.


7

Tôi sử dụng leafletjs và tôi nghĩ nó rất đơn giản. Nó dựa trên javascript và có thể vẽ các tính năng bằng nhiều nguồn dữ liệu khác nhau. Về cơ bản, bạn chèn mã bản đồ vào tệp .html và sau đó xem tệp. Tôi không thể nhận xét về các API khác, nhưng tôi nghĩ rằng google khá đơn giản, cũng như Openlayers.

Ngoài ra, có những dịch vụ như MapBox không yêu cầu bạn lưu trữ tệp html mà chỉ tải dữ liệu của bạn lên chúng.


6

Tôi nghĩ rằng cách dễ nhất để đi với plugin qgis + qgis2leaflet. Bạn có thể chỉnh sửa bất cứ điều gì bạn muốn trong qgis hơn là xuất ra tờ rơi và tải lên máy chủ web của bạn. Hoặc nếu bạn chọn cách thú vị hơn:

  1. máy tính để bàn: qgis
  2. quản trị cơ sở dữ liệu: navicat
  3. máy chủ web: VPS cơ bản
  4. gói webgis: geosuit ràng buộc (chứa: postgresql / postgis, geoserver, và Geoexplorer)

Thay vì trình duyệt địa lý, tôi sẽ sử dụng javascript tờ rơi, vì nó trông đẹp hơn và chạy mượt hơn ... nhưng hãy dành chút thời gian để sao chép / dán một số mã. đây là một ví dụ: http://gis.xyz


5

Điều quan trọng cần lưu ý là Web-Gis là một lĩnh vực rộng lớn và rất nhiều công việc đã được thực hiện trên một số dự án và thư viện để giúp đỡ trong nỗ lực này. Vì vậy, chúng tôi cần phải xem nếu có một cái gì đó mà bạn có thể tái sử dụng, thay vì bắt đầu từ đầu.

Tin xấu là không có thư viện / ứng dụng phổ biến để lập bản đồ web trong php. Tin tốt là bạn có thể không cần.

Tôi khuyên bạn trước tiên nên cố gắng hiểu WebMapping và hiểu các dự án và Thư viện đã có mặt. Đối với điều này, bạn có thể tham khảo những câu hỏi sau:

Một khi bạn đã hiểu các tùy chọn có sẵn, sau đó bạn nên làm rõ các yêu cầu của bạn. Nhìn vào câu hỏi của bạn, bạn có các yêu cầu rất cơ bản: Hiển thị Bưu kiện trên bản đồ Cho phép truy vấn, Nhận thuộc tính cho Bưu kiện và hiển thị chúng cho người dùng, theo kết quả của Truy vấn hoặc khi Người dùng nhấp vào nó.

Loại công việc này có thể sử dụng Google Maps, nhưng tôi không khuyến nghị, vì API Google Maps gây khó khăn khi bạn có số lượng dữ liệu lớn.

Thay vào đó tôi sẽ đề nghị bạn đi với giải pháp Geoserver / OpenLayers miễn là bạn có thể làm việc với JavaScript. Bạn thậm chí có thể không cần bất kỳ mã php nào, nếu dữ liệu của bạn là tất cả trong các thuộc tính của các tính năng.


Tôi tốt với JQuery và các thư viện Jscript khác, cũng đã từng chạm vào ExtJS. Một câu hỏi, làm thế nào để vẽ các khu vực của tôi trên bản đồ và làm cách nào để xuất cái này sang db? Tôi có cần phải phụ thuộc hoàn toàn vào những gì bản đồ có hoặc nó cho phép tôi vẽ trên đó không? Làm thế nào đạt được điều đó?
Churchill

Nếu bạn có dữ liệu bưu kiện có thể ở dạng shapefiles hoặc các định dạng khác, bạn có thể hiển thị nó dưới dạng lớp wms trên đầu Google Maps / các bản đồ cơ sở khác. Lớp WMS này có thể được phục vụ bởi Geoserver / mapserver. Trong Bổ sung, bạn luôn có thể vẽ các tính năng mới, sử dụng các lớp Vector.
Devdatta Tengshe

5

Một lựa chọn ánh sáng đẹp cho OpenLayers, đó là thư viện javascript phổ biến để lập bản đồ web, là Leaflet .

Tôi sử dụng Leaflet với GeoServer để tạo một số bản đồ đẹp, bao gồm cả một số tương tác. Nó không yêu cầu mã hóa tùy chỉnh, nhưng không nhiều, và nó dễ sử dụng hơn nhiều so với OpenLayers.


5

Trước khi quyết định giữa Leaflet và OpenLayers, có lẽ nên xem phiên bản sắp tới hứa hẹn một API đã được dọn sạch và tài liệu tốt hơn:

OpenLayers 3 là một bản viết lại toàn diện của thư viện, nhắm mục tiêu mới nhất trong các tính năng HTML5 và CSS3. Thư viện sẽ tiếp tục có sự hỗ trợ rộng rãi cho các phép chiếu, giao thức chuẩn và chức năng chỉnh sửa từ OpenLayers 2.x. Phiên bản mới của thư viện sẽ tập trung vào cải tiến hiệu suất, bản dựng nhẹ hơn, các thành phần trực quan đẹp hơn, API cải tiến và hơn thế nữa. Một số điểm nổi bật chính là:

- - - - - - 8 <- - - - - - 

Một cơ sở mã mới: Điều này mang đến một cơ hội để dọn sạch một số cách thức hoạt động vụng trộm trên đường cao tốc trong trò chơi OpenLayers. Nhóm cũng sẽ tạo ra với các thiết kế API mới, sẽ dễ tiếp cận hơn với tất cả mọi người.

Tài liệu chất lượng cao: Bản phát hành mới cũng sẽ có tài liệu với các ví dụ mới và thiết kế mặc định trong OpenLayers 3.0. Làm cho một bộ công cụ nổi bật là nhiều hơn so với mã thực tế.

http://openlayers.org/


5

Tôi sẽ bắt đầu với Google Maps API . Nó miễn phí và dễ dàng để làm việc với. Nó sử dụng Javascript, có thể được học thông qua một số tài nguyên tốt. Tôi muốn giới thiệu Codecademy nếu bạn chưa quen với JS.

Có nhiều nguồn dữ liệu miễn phí ngoài đó có thể được tích hợp vào Google Maps thông qua một số cách (KML, cơ sở dữ liệu, GeoRSS, v.v.). Hầu hết các tiểu bang và nhiều trường đại học có cửa hàng dữ liệu miễn phí có thể được tích hợp vào bản đồ của bạn.

Một trong những trang web yêu thích của tôi cho các ví dụ về Google MapsGoogle Maps Mania . Có những ví dụ bản đồ tuyệt vời thể hiện những gì có thể có trong API này.


5

GeoPHP có thể đáng xem.

GeoPHP là một thư viện PHP gốc nguồn mở để thực hiện các hoạt động hình học. Nó được viết hoàn toàn bằng PHP và do đó có thể chạy trên các máy chủ được chia sẻ. Nó có thể đọc và viết rất nhiều định dạng: WKT (bao gồm EWKT), WKB (bao gồm EWKB), GeoJSON, KML, GPX, GeoRSS. Nó hoạt động với tất cả các dạng hình học tính năng đơn giản (Point, LineString, Polygon, GeometryCollection, v.v.) và có thể được sử dụng để lấy centroid, khung giới hạn, diện tích và nhiều thông tin hữu ích khác.

Và bạn có thể nâng cấp lên với phần mở rộng GEOS (giả sử bạn có quyền quản trị viên để cài đặt GEOS).

Với GEOS, bạn có được toàn bộ các hàm openGIS trong PHP như Union, IsWithin, Touches, v.v. Điều này có nghĩa là các ứng dụng có được một "tập hợp lõi" hữu ích của các hoạt động hình học hoạt động trong mọi môi trường và một "tập hợp mở rộng" của hoạt động cho các môi trường đã cài đặt GEOS.


4

Vâng, tập lệnh PHP tùy chỉnh có thể là một giải pháp mạnh mẽ hơn (và đơn giản). Xét cho cùng, dữ liệu không gian chỉ là các hàng trong cơ sở dữ liệu và chúng có thể được truy vấn như bình thường. Không cần phần mềm GIS máy chủ nặng và / hoặc cú pháp bộ lọc OGC khủng khiếp. Nếu tôi ở vị trí của bạn, tôi sẽ lưu trữ dữ liệu trong cơ sở dữ liệu PostgreQuery với phần mở rộng PostGIS, viết back-end PHP để truy vấn cơ sở dữ liệu và truy xuất dữ liệu ở định dạng GeoJSON (nhìn vào ý chính này ) và ứng dụng web mặt trước dựa trên OpenLayers - nó linh hoạt hơn API Google Maps, nhưng bạn vẫn có thể lập bản đồ cơ sở của Google nếu muốn.


Mặc dù phương pháp này sẽ hoạt động, nhưng nó sẽ chậm chạp và nặng nề với lượng dữ liệu lớn như bưu kiện cho một quận / huyện.
Devdatta Tengshe

3

Để được trợ giúp về việc lựa chọn, Giải pháp thay thế cho câu hỏi ArcGIS OnlineSách, tạp chí, tài nguyên điện tử nào có giá trị nhất để mở rộng kiến ​​thức Thông tin Địa lý? câu hỏi cho tài nguyên học tập.

Chi phí lập bản đồ web bao gồm lưu trữ (trả tiền cho một trang web) và dung lượng lưu trữ của máy chủ (nếu bạn đang sử dụng các dịch vụ lập bản đồ, hãy xem giá của MapBoxgiá CartoDB mỗi tháng). Cuối cùng, biết phát triển web sẽ rất quan trọng để tạo bản đồ của bạn.


2

Vâng, có một vài thư viện ánh xạ bạn có thể sử dụng.

Đầu tiên (và có lẽ được biết đến nhiều nhất) sẽ là Google Maps API , tuy nhiên tôi nghĩ rằng điều này có thể khá phức tạp nếu bạn tương đối mới với lập bản đồ web.

Tôi sẽ đề nghị xem qua Leaflet.js hoặc Mapbox.js . Mapbox.js được xây dựng với Leaflet trong tâm trí và Mapbox có một số hướng dẫn tuyệt vời về các nhiệm vụ khác nhau mà bạn có thể thực hiện với Mapbox.js. Tờ rơi cũng có một số ví dụ và tài nguyên .

Dưới đây là các liên kết cụ thể đến các ví dụ sẽ giúp dẫn bạn đi đúng hướng.



2

Tôi là một người lập bản đồ web mới và được giới thiệu đến Trực quan hóa dữ liệu của Scott Murray cho Web . Ebook của anh ấy có thể được đọc ở đây: http://chimera.labs.oreilly.com/books/1230000000345/ miễn phí. Nó dành cho 'noncoders', cực kỳ nhiều thông tin và có nhiều ví dụ thực tế.


-3

Bạn có thể sử dụng UMN Map Server. Ở đó, bạn có thể sử dụng các tập lệnh PHP (được gọi là tập lệnh bản đồ). Điều này dựa trên máy chủ Apache. Nếu bạn muốn có một cơ sở dữ liệu, bạn có thể sử dụng MySQL với các phần mở rộng không gian hoặc PostgreQuery với postGIS ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.