開源WebGIS全流程常用技術棧

1 數據生產

1.1 uDig

uDig(http://udig.refractions.net/)是一個基于Java開源的桌面應用框架,它構建在Eclipse RCP和GeoTools(一個開源的Java GIS包)上。可以進行shp格式地圖文件的編輯和查看;是一個開源空間數據查看器/編輯器,對OpenGIS標準,關于互聯網GIS、網絡地圖服務器和網絡功能服務器有特別的加強。uDig提供一個一般的java平臺來用開源組件建設空間應用。開發者可通過這個平臺來創建新的在uDig 基礎上衍生的應用程序,uDig 是WebGIS 的一個核心組件。Geotools 是一個開源的Java GIS 工具包,可利用它來開發符合標準的地理信息系統。Geotools 提供了OGC( Open Geospatial Consortium) 規范的一個實現來作為他們的開發。

uDig支持WMS,WFS,WPS等GIS服務,同時提供了豐富的地圖數據編輯功能,包括點、線、面和圖片形式的編輯。但實際上應用最多的就是使用uDig編輯shp格式的地圖數據,從中提取作用域地圖發布的樣式文件(*。sld)。通常使用默認文字編碼的地圖數據通過WMS服務顯示處的地圖中文標簽是亂碼。用uDig導出shp格式地圖數據的SLD樣式文件,可以有效的解決中文標簽亂碼問題。

官網:http://udig.refractions.net/

下載地址:http://udig.refractions.net/download/

udig下載、安裝及漢化

1.2 QGIS

QGIS(https://www.qgis.org/zh_CN/site/)全稱Quantum GIS,基于Qt,使用C++開發的開源版桌面地理信息系統。該系統可運行在Linux、Unix、Mac OSX和Window等平臺之上。QGIS最大的特點是它把圖層當做數據處理的最基本單位,實際上它支持的圖層具有很廣泛的來源,主要有矢量文件圖層、CAD圖層、影像數據圖層和WMS圖層。QGIS 支持vector, raster 和database 格。它能夠很好地支持PostGIS。目前最新版本更新到3.10.2。

1.3 QGIS和uDig的比較

2 數據存儲

2.1 PostgreSQL

PostgreSQL(對象-關系數據庫管理系統)是由加州大學伯克利分校計算機系開發的Postgres軟件包發展而來的。PostgreSQL幾乎支持所有SQL構件(包括子查詢,事物和用戶定義類型和函數),并且可以獲得非常廣闊范圍的開發語言綁定(包括C,C++,Java,Perl,tcl,和Python)。在空間數據管理方面, PostgreSQL定義了一系列的幾何數據類型, 包括點(point),線(line),線段(lseg), 方形(box), 閉合和開放路徑(path),多邊形(polygon), 圓(circle)。但是PostgreSQL提供的幾何類型并不支持OpenGIS的SFS規范, 缺乏復雜幾何類型, 沒有提供空間分析和投影變換模塊, 很難達到GIS的應用要求。

2.2 PostGIS

PostGIS(http://www.postgis.org/)是一個功能強大的開源空間數據庫。它是在1986年誕生于加州大學伯克利分校。PostGIS是PostgreSQL(對象-關系型數據庫管理系統)的一個擴展。它支持所有的空間數據類型與一系列重要的GIS 函數,包括完全的OpenGIS 支持、拓撲結構和用于查看、編輯GIS 數據桌面用戶相關工具和基礎網絡訪問工具。作為PostgreSQL對象關系數據庫系統的擴展模塊,PostGIS 支持GIS 空間數據的存儲,PostGIS 遵循OGC 的Simple Feature for SQL。PostGIS在PostgreSQL基礎上增加了存儲空間數據的能力,與Oracle中Spatial相似。PostGIS也具有大型數據庫的特性,如數據備份,數據庫恢復,災難恢復等。

PostGIS支持所有的空間數據類型,這些類型包括:點(POINT)、線(LINESTRING)、 多邊形(POLYGON)、多點(MULTIPOINT)、 多線(MULTILINESTRING)、 多多邊形(MULTIPOLYGON)和集合對象集(GEOMETRYCOLLECTION)等。PostGIS支持所有的對象表達方法,比如WKT和WKB。PostGIS支持所有的數據存取和構造方法,如GeomFromText()、AsBinary(),以及GeometryN()等。PostGIS提供簡單的空間分析函數(如Area和Length)同時也提供其他一些具有復雜分析功能的函數,比如Distance。PostGIS提供了對于元數據的支持,如GEOMETRYCOLUMNS和SPATIAL REF SYS,同時,PostGIS也提供了相應的支持函數,如AddGeometryColumn和DropGeometryColumn。PostGIS提供了一系列的二元謂詞(如Contains、Within、Overlaps和Touches)用于檢測空間對象之間的空間關系,同時返回布爾值來表征對象之間符合這個關系。PostGIS提供了空間操作符(如Union和Difference)用于空間數據操作。比如,Union操作符融合多邊形之間的邊界。兩個交迭的多邊形通過Union運算就會形成一個新的多邊形,這個新的多邊形的邊界為兩個多邊形中最大邊界。

2.3 PostGIS與PostgreSQL的對比

總的來說PostGIS相當于PostgreSQL的升級版,在此基礎上完善了空間分析操作以及更復雜的幾何量算。

2.4 MySQL

MySQL(https://www.mysql.com/)是一種小型關聯數據庫管理系統。這種數據庫的最大特點是,它將數據保存在不同的數據表中,而不是將全部的數據都存放在倉庫中,這樣提高了數據庫的靈活性,增加了查詢的速度。它現在同樣支持空間擴展,該數據庫能夠生成、保存及分析空間特征,它使用了OGC建議的含有Geometry類型的,負荷SQL語句環境的一個自己,提供了一組對空間數據實現很多操作的函數,這些函數可以在各種格式間轉換幾何值,并且訪問幾何值的定性或定量等屬性信息。開發者為瑞典MySQLAB公司。該公司在2008年被Sun公司收購。

MySQL是完全網絡化的跨平臺關系型數據庫,因為其體積小、速度快、總體擁有成本低,且開放源碼,被廣泛的應用于Internet上的中小型網站中。

?MySQL Spatial Extensions 地理信息

?http://mysqlserverteam.com/mysql-5-7-and-gis-an-example/

  1. MySQL Spatial Extensions(后面簡稱MySQL Spatial)功能不夠完全。至少和PostGIS相比是這樣的,它只支持了openGIS(一個標準)的一個子集,包涵有限的幾種空間數據類型(比如Point,LineString,Polygon等),支持的函數也很少,比如,連計算兩個點的distance函數都沒有...
  2. ?MySQL Spatial的安裝配置非常的簡單。其實,它根本不需要安裝。默認的MySQL配置就能夠使用這些空間數據類型。這和PostGIS很不一樣,PostGIS是需要在PostgreSQL上再安裝一個擴展包。
  3. ?不同的存儲引擎有差別。MyISAM和InnoDB都支持spatial extensions,但差別在于:如果使用MyISAM,可以建立spatial index,而InnoDB是不支持的。這點差別在某些場景下很關鍵,后面會再詳細說說spatial index。

2.5 MongoDB

MongoDB(https://www.mongodb.com/)是一個開源面向文檔的NoSQL 數據庫,用C++編寫。它提供一種強大、靈活、可擴展的數據存儲形式。MongoDB功能豐富,內置MapReduce聚合的支持,支持地理空間索引。MongoDb具有弱一致性,保證用戶的訪問速度,文檔結構的訪問方式,能夠更便捷地獲取數據,內置GirdFS 支持大容量的儲存,內置Sharding,第三方支持豐富,性能優越。

MongoDB在存儲空間數據比傳統的關系數據庫如MySQL 和PostgreSQL 更具優勢。MongoDB 對空間數據是原生支持,不需要安裝第三方空間數據庫引擎即可構建空間索引進行進行快速的空間查詢。MongoDB 支持平面( 2d) 和球面( 2dsphere indexes) 兩種空間索引。面向大眾型的GIS 應用會存儲大量的POI 數據或者用戶產生的位置數據,利用MongoDB 儲存可以提高檢索效率。MongoDB 支持MapReduce計算模型,處理海量LBS數據有較高的效率。MongoDB有多種基于的Node.JS的第三方庫實現對MongoDB的操作,這樣使得對數據的操作更加的便捷。

MongoDB 中使用 GeoJSON對象 或 坐標對 描述空間地理數據。MongoDB使用 WGS84 參考系進行地理空間數據查詢。

1、MongoDB支持空間數據的存儲,數據類型需要限制為GeoJSON;

2、MongoDB可以為GeoJSON類型數據建立索引,提升空間查詢的效率;

在高負載的情況下,添加更多的節點,可以保證服務器性能。

MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。

MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。

2.6 PostGIS、MySQL和MongoDB的比較

總的來說,PostGIS對GIS原生支持的最多;MySQL勝在速度快,體積小但并不是所有功能都免費;MongoDB處理數據快,適用于大數據級別的數據處理,在弱GIS應用中或簡單的LBS應用中有天然的優勢。

3 GIS服務

3.1 GeoServer

GeoServer(http://geoserver.org/)是一個遵守OGC開放標準的開源地圖服務器,它支持J2EE規范,且實現了WCS、WMS(網絡地圖服務)及WFS(網絡要素服務)規格,支持TransactionWFS(WFS-T),其技術核心是整合了頗負盛名的JavaGISolkit--GeoTools。對于空間信息存儲,它支持ESRI Shapefile及PostGIS、Oracle、ArcSDE等空間數據庫,輸出的GML檔案滿足GML2.1的要求。由于它是純Java的,所以更適合于復雜的環境要求,而且由于它的開源,所以開發組織可以基于GeoServer靈活實現特定的目標要求,而這些都是商業GIS組件所缺乏的。GeoServer作為一個純粹的Java實現,被部署在應用服務器中,簡單的如Tomcat等;它的WMS和WFS組件響應來自于瀏覽器或uDig的請求,訪問配置的空間數據庫,如PostGIS、OracleSpatial等,產生地圖和GML文檔傳輸至客戶端。

具有以下優點:

1) 用 java 語言編寫、標準的 J2EE 框架、基于 servlet和STRUTS 框架、 支持高效的 Spring 框架開發;

2) 兼容 WMS 和 WFS 特性、支持 WFS-T 規范;

3) 高效的數據庫支持 PostGIS、ShapeFile、ArcSDE,Oracle、MySQL 等;

4) 支持上百種投影;

5) 能夠將網絡地圖輸出為 jpeg、gif、png 、SVG、GML、KML等格式;

6)能夠運行在任何基于J2EE/servle框架之上;

7)嵌入MapBuilder支持AJAX的地圖客戶端

8)實現了在線編輯空間數據、生成專題地圖;

9)地圖發布是用XML文件。

10)支持Goodgle Maps;

11)可發布KML數據,可與GoogleEarth影像疊加。

3.2 MapServer

MapServer(https://mapserver.org/) 源自美國太空總署(NASA)資助的美國明尼蘇達大學(University of Minnesota)ForNet項目,最終衍生為一個WebGIS開源軟件,是一個功能強大的跨平臺的網絡地圖服務軟件包, 可以應用于UNIX/Linux, Windows, MacOSX, Solaris等平臺,支持的語言包括 Python,PHP,Perl,Java,Tcl,C# 等。MapServer使用幾個知名的開放源代碼軟件完成數據格式轉換、地圖投影轉換、空間數據庫的大數據量處理等, 而本身專注于地圖繪制、地圖圖形格式、接口環境、兼容OGC互操作規范等方面。

MapServer具有強大的空間數據的網絡發布功能,支持多種數據格式,使得在WebGIS 中整合空間數據和非空間數據變得更加容易。MapServer是基于胖服務器/瘦客戶端模式開發的 WebGIS 平臺。主要是因為處理空間數據的任務主要在服務器端完成,在通過客戶端發送請求的時候,服務器依據客戶端請求,執行相應的操作并返回數據,客戶端將數據處理顯示返回用戶。它的核心模塊主要是通過C語言編寫完成,提供了兩種開發模式,一種是基于CGI的,另一種是MapScript方式; 在服務器端可以使用任一模塊,編寫WebGIS程序。它遵守OGC制定的WMS、WFS、WCS和GML等一系列規范,支持分布式訪問和互操作。MapServer作為WebGIS解決方案是基于對象的,基本配置文件 MapFile 和 MapScript 模塊的API組織都是基于對象的。

MapServer簡介 — MapServer 7.6.4 documentation

MapServer是一個流行的開源項目,其目的是通過Internet顯示動態空間地圖。它的一些主要功能包括:

??? 支持顯示和查詢數百種柵格、矢量和數據庫格式

??? 能夠在各種操作系統(Windows、Linux、Mac OS X等)上運行。

??? 支持流行的腳本和開發環境(PHP、Python、Perl、Ruby、Java、.NET)

??? 飛行中的投射

??? 高質量渲染

??? 完全可自定義的應用程序輸出

??? 許多現成的開源應用程序環境

在最基本的形式中,mapserver是 CGI 在Web服務器上處于非活動狀態的程序。當請求發送到MapServer時,它使用請求URL中傳遞的信息和 Mapfile 創建所請求地圖的圖像。請求還可以返回圖例、比例尺、參考地圖和作為CGI變量傳遞的值的圖像。

3.3 MapProxy

MapProxy(https://mapproxy.org/)是 WMS 網頁地圖服務與切片服務提供者的瑞士軍刀。它對已有地圖服務的數據服務進行緩存、加速和轉換,服務任何支持 OGC 標準的桌面與網頁客戶端。 MapProxy 開發與部署方式靈活,易于同 Apache/Nginx 環境等集成。MapProxy 也能作為一個獨立服務器使用,這是對于新用戶而言最容易的方式。  MapProxy 的默認示例是一個基本的 WMS 切片客戶端,它顯示了配置的各個圖層;不具備改變投影等復雜功能,但足以驗證服務是否正常運行。

3.4 MapServer和GeoServer的總體對比

先看歷史悠久產品成熟的MapServer。Mapserver在國內用戶廣泛,其內核使用C++編寫,基于CGI腳本實現,頁面調用支持PHP、JSP等多種語言,并且對OGC的WMS和WFS規范提供支持。Map文件是Mapserver工程中關鍵的結構配置文件,定義了地圖范圍、數據源、地圖圖層、投影方式以及符號標記等內容。如果在Linux平臺下快速配置MapServer地圖服務器,使用Maptools發布的 FGS(FOSS GIS Suite)套件無疑是最佳方案,套件集成了整套的MapServer、Apache、PHPMapScript以及GDAL庫等眾多內容,并且提供安裝后就可直接瀏覽的地圖DEMO。

再看GeoServer,基于Java和Geotools庫開發的Geoserver功能全面且遵循OGC開放標準,并由同時擁有PostGIS與uDig的Refractions公司提供支持。GeoServer對發布WFS-T和WMS服務提供便捷的支持,并以XML文件描述所有地圖服務,同時即將加入的FROGS(Framework for Open Geospatial Services)項目將著重提供對WPS規范的支持。GeoServer的開發組很活躍,郵件咨詢的問題很快會得到Jody Garnett和組內其他成員的回復。

比較來說,Mapserver對WMS的支持更為高效,而Geoserver則更擅長于結合WFS規范的屬性查詢。當然,對于使用者來說,最主要的區別還是傳統CGI腳本與J2EE在技術上的分歧。但就發展趨勢來看,J2EE的架構明顯要占據優勢,并且Geoserver擁有基于Eclipse RCP平臺的開源客戶端uDig。隨著Geoserver的版本更新,相信其有實力成為今后開源WebGIS解方案的主流選擇。

總的來說,功能上:MapServer弱于GeoServer。效率上:Mapserver對WMS(Web Map service)的支持更為高效,而Geoserver則更擅長于結合WFS(Web Feature service)規范的屬性查詢。
詳細見下表:

4 Web服務

4.1 Apache

Apache(https://www.apache.org/)是目前世界使用排名第一的Web服務器。根據Web服務器調查公司Netcrafe調查, 全Internet有50%以上的Web服務器都在使用Apache。1995 年4月, 最早的Apache(0.6.2 版)由ApacheGroup公布發行。Apache Group是一個完全通過Internet進行運作的非盈利機構,由它來決定ApacheWeb服務器的標準發行版中應該包含哪些內容。準許任何人修改隱錯, 提供新的特征和將它移植到新的平臺上, 以及其他的工作。Apache的特點是簡單、速度快、性能穩定, 可以運行在幾乎所有廣泛使用的計算機平臺上, 并可做代理服務器來使用。Apache是Linux主流的服務器, 為Linux的迅速繁榮立下了汗馬功勞。

4.2 Node.js

Node.js(https://nodejs.org/) 是一個讓JavaScript 運行在服務端的開發平臺,Node.js基于Chrome的V8引擎,V8引擎是Google公司使用C++開發的高性能JavaScript引擎,可以在多種環境下使用。使用V8引擎的Node.js讓作為前端開發語言的Javascript能夠自由運行在服務器環境下。Node.js借助事件驅動,非阻塞I/O 模型變得輕量和高效,非常適合運行在分布式設備的數據密集的實時應用。Node.js 自2009年出現一直備受關注,開發社區龐大、數以萬計的第三方模塊為構建網絡程序提供了很大便捷。

4.3 Tomcat

Tomcat(http://tomcat.apache.org/) 是Apache 軟件基金會( Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache,Sun和其他一些公司及個人一塊開發而成。由于有了Sun 的參與與支持,最新的Servlet 與JSP 規范總是能在Tomcat中得到完美體現,Tomcat 5 支持最新的Servlet 2.4 與JSP2.0 規范。因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的青睞并得到了部分軟件開發商的認可,成為目前比較流行的Web 應用服務器。Tomcat 是一個輕量級的服務器,運行時占用的系統資源少,安裝和部署方便,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。

5 前端渲染

5.1 OpenLayers

OpenLayers(http://openlayers.org/)是一個開源的jS框架,用于在您的瀏覽器中實現地圖瀏覽的效果和基本的zoom,pan等功能。OpenLayers支持的地圖來源包括了WMS,GoogleMap,KaMap,MSVirtualEarth等等,您也可以用簡單的圖片作為源,在這一方面OpenLayers提供了非常多的選擇。此外,OpenLayers實現了行業標準的地理數據訪問方法如OGC的Web Mapping Service(WMS)and Web Feature Service(WFS)協議。OpenLayers可以簡單的在任何頁面中放入動態的地圖。它可以從多種的數據源加載顯示地圖。MetaCarta公司開始開發了OpenLayers的初始版本同時將它開放給了公眾以作為以后各種地理信息系統的應用。

5.2 OpenScales

OpenScales是一個基于Flex的優秀前臺地圖框架,可以用來開發各種網絡版、手機版和桌面版地圖程序。OpenScales是開源的、免費的客戶端開發框架,基于LGPL開源協議,它在FlashPlayer中運行,可以在各個瀏覽器中使用,具有很好的跨平臺特性。鑒于主要對Flash的友好支持,故可不放在第一梯隊考慮。

5.3 Leaflet.JS

Leaflet(https://leafletjs.com/) 是一個為構建交互性好、適用于移動設備地圖應用,而開發的現代的、開源的 JavaScript 庫。 它是由 Vladimir Agafonkin 帶領一個專業貢獻者團隊開發,代碼量很小(僅33Kb),但具有開發人員開發在線地圖的大部分功能。 Leaflet設計堅持簡便、高性能和可用性好的哲學思想,在所有主要桌面和移動平臺能高效運作, 在現代瀏覽器上會利用HTML5和CSS3的優勢,同時也支持舊的瀏覽器訪問。它支持插件擴展,有一個友好、易于使用的API文檔和一個簡單的、可讀的源代碼。

Leaflet 強大的開源庫插件涉及地圖應用的各個方面包括地圖服務、數據提供、數據格式、地理編碼、路線和路線搜索、地圖控件和交互等類型的插件共有140多個。這些控件大大擴展了LeafLet 的功能,同時也可以設計開發自定義的控件,具有良好的可擴展性。其中Esri提供面向ArcGIS Services的leaflet的插件,插件支持Esri底圖服務、要素服務、瓦片和動態圖服務。Leaflet API可以調用各種在線的地圖服務天地圖、Google 地圖、高德地圖可以滿足多種服務的需要。系統外觀UI采用BootStrap 響應式結構設計框架對各種尺寸的屏幕進行優化顯示,開發者只需具有基本的CSS基礎就可以設計適合多終端、多平臺的GIS應用。

5.4 Cesium

Cesium(https://cesium.com/cesiumjs/)基于 WebGL 的前端3D JavaScript 類庫。 Cesium在2016年3月份左右推出3D Tiles數據規范,在gltf基礎上提供了LOD能力, 就是Web環境下海量三維模型數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23926.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23926.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23926.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

?在哪些場景下,使用SOCKS5代理會特別有用?(socks5代理ip)?

SOCKS5代理作為網絡協議轉換的利器,其獨特功能在眾多實際場景中展現出了極大的價值。以下是幾個特定場景,其中SOCKS5代理的使用將變得尤為重要: 一、網絡安全與隱私訪問 1.高級滲透測試:在網絡安全領域,滲透測試人員…

Java 異常處理 - 自定義異常

在Java中,自定義異常是一種創建新異常類的方式,這些異常類繼承自Throwable類或其子類Exception(或RuntimeException,如果它是運行時異常的話)。自定義異常通常用于描述特定于應用程序的錯誤情況,以便為調用…

MS21112S單通道 LVDS 差分線路接收器

MS21112S 是一款單通道低壓差分信號 (LVDS) 線 路接收器。在輸入共模電壓范圍內,差分接收器可以 將 100mV 的差分輸入電壓轉換成有效的邏輯輸出。 該芯片可應用于 100Ω 的受控阻抗介質上,進行點對 點基帶數據傳輸。傳輸介質可以是印刷電路板、…

配音方面目前可以用AIGC替代嗎?( 計育韜老師高校公益巡講答疑實錄2024)

這是計育韜老師第 8 次開展面向全國高校的新媒體技術公益巡講活動了。而在每場講座尾聲,互動答疑環節往往反映了高校師生當前最普遍的運營困境,特此計老師在現場即興答疑之外,會盡量選擇有較高價值的提問進行文字答疑梳理。 *本輪巡講主題除了…

360誤刪掉的文件怎么恢復?3種文件找回辦法!

360是一款電腦安全輔助軟件,可以用它來清理垃圾、查殺病毒、修復系統等。然而,有時文件可能會被360誤認為是垃圾而自動清理,造成重要文件丟失,那么360刪掉的文件怎么恢復?下面,讓我們一起來看看如何恢復文件…

三維點云擬合平面推導及源代碼C++

1、背景介紹 實際中,很多人工構造物是由平面結構構造而成,如下圖所示,為一典型的由多個平面組成的人工構筑物。因此,根據離散點擬合成平面,獲取擬合平面方程,是點云數據處理中非常常見的數據處理操作。 2、平面擬合參數推導 基于若離散點,估算平面方程過程如下: 3、程序…

電子設計教學新篇章:SmartEDA引領學校教學升級風潮

在數字化時代的浪潮中,電子設計教學領域正迎來一場革命性的變革。SmartEDA,作為電子設計課程的新寵,以其高效、智能的特性,正成為學校教學升級的重要推手。它不僅極大地提升了電子設計的效率,還為學生們帶來了更為深入…

ChatGPT-4o提示詞的九大酷炫用法,你知道幾個?

ChatGPT-4o提示詞的九大酷炫用法,你知道幾個?🚀 博主貓頭虎的技術世界 🌟 歡迎來到貓頭虎的博客 — 探索技術的無限可能! 專欄鏈接: 🔗 精選專欄: 《面試題大全》 — 面試準備的寶典…

xstream運用,JAVA對象轉xml,xml轉JAVA對象

目錄 xstream 優點: 缺點: XStream的應用場景 用到的依賴 代碼實現 xml標簽對應的實體類 Header Package Request Response TradeInfo 工具類 XmlUtils 執行結果 xstream XStream是一個Java類庫,主要用于將對象序列化為XML&#xf…

OV通配符ssl證書是什么

通配符https證書的產品比較豐富,為了方便區分,可以按照驗證方式將通配符https證書分為DV基礎型通配符https證書和OV企業型通配符https證書兩種。其中OV通配符https證書申請條件高,審核也比較嚴格,相比于DV基礎型通配符https證書&a…

IPv4 和 IPv6 是什么意思?它們之間的區別都有哪些?

什么是 IPv4 和 IPv6 什么是 IPv4 和 IPv6 呢?下面我們就來了解一下。 IPv4 就是互聯網協議第 4 版,是目前廣泛使用的網絡協議版本。它由互聯網工程任務組(IETF)在 1981 年開發完成。IPv4 使用 32 位地址,允許大約 4…

推薦系統三十六式學習筆記:原理篇.近鄰推薦07|人以群分,你是什么人就看到什么世界

目錄 協同過濾基于用戶的協同過濾背后的思想原理實踐1、構造矩陣2、相似度計算3、推薦計算4、一些改進 應用場景:總結 談及推薦系統,不得不說大名鼎鼎的協同過濾。協同過濾的重點在于協同,所謂協同,也就是群體互幫互助&#xff0c…

初級軟件測試快速入門

文章目錄 初級軟件測試-測試用例、缺陷報告的認識與使用軟件測試簡介測試分類模型質量模型測試模型 用例編寫的八大要素用例設計方法缺陷 初級軟件測試-測試用例、缺陷報告的認識與使用 軟件測試簡介 什么是軟件測試? 使用技術手段驗證軟件是否滿足需求 主流技能 …

關于 Vue.js 中`transition`組件使用:頁面切換動畫和標簽移動動畫都是要用到的

一、引言 在 Vue.js 中,transition組件提供了一種簡單而強大的方式來實現頁面過渡效果。它可以讓元素在狀態改變時,如進入或離開視圖時,以平滑的動畫方式進行過渡。通過transition,我們可以為應用增添更加生動和吸引人的用戶體驗…

Linux文件編碼格式為unknown 8bit

file -i 1.txt顯示文件編碼為unknown 8bit, 說明這個文件的編碼格式因為一些不明原因無法識別了。 可以嘗試用其他編輯器打開,來看一下編輯器最終是用什么編碼格式打開的。 vim :set filecodingnotepad 直接打開文件,右下角會顯示文件編碼 假設文件編…

《數學學習與研究》雜志是什么級別?知網收錄嗎?評職認可嗎?

《數學學習與研究》雜志是什么級別?知網收錄嗎?評職認可嗎? 《數學學習與研究》是由東北師范大學主管,吉林省數學會與東北師范大學出版社聯合主辦的省級優秀數學類期刊雜志。該雜志為半月刊,國際標準刊號為 ISSN1007-…

圖解通用網絡IO底層原理、Socket、epoll、用戶態內核態······

LInux 操作系統中斷 什么是系統中斷 這個沒啥可說的,大家都知道; CPU 在執行任務途中接收到中斷請求,需要保存現場后去處理中斷請求!保存現場稱為中斷處理程序!處理中斷請求也就是喚醒對應的任務進程來持有CPU進行需要…

《大宅門》特別活動走進李良濟,開啟探尋中醫藥文化之旅!

《大宅門》話劇將于6月14-16日在蘇州灣大劇院上演,為了讓大家了解到中醫藥知識,6月2日,李良濟攜手蘇州灣大劇院舉辦《大宅門》特別活動“探尋中醫藥文化之旅”! 6月2日下午,大家一起走進李良濟,深度了解傳統…

vite熱更新導致的問題及解決

一、封裝axios攔截器后,每次熱更新雖然請求了一次,但是response了多次: import axios from "axios"; axios.interceptors.request.use() axios.service.interceptors.response.use()導致此問題是因為觸發了多次攔截器,相當于是給axios添加了多個攔截器,所以多次…