中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行leaflet在線地圖的解析

發布時間:2021-11-22 17:56:57 來源:億速云 閱讀:306 作者:柒染 欄目:大數據

如何進行leaflet在線地圖的解析,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

最近稍微涉獵了一下leaflet這個包,突然感到發現了動態可視化的新大門,這個包所提供的地圖類型、動態效果、圖層展示方式都大大擴展了ggplot作圖系統的在數據地圖上的缺陷。

leaflet是業界比較流行的JS開源交互式地圖包,它支持直接調用OpenStreetMap, Mapbox, and CartoDB等主流地圖數據作為輔助圖層來進行地理信息數據的可視化操作。

除了這些在線地圖素材之外,它對于shapefile格式和json格式以及sp包的空間數據格式的地圖數據都有著很好的支持,在圖層函數中涵蓋了點標記、線條和多邊形等常用地理信息可視化圖形要素。

該包的代碼對R語言的文檔輸出系統有著良好的支持,可以很方便的嵌入knitr/rmarkdown文檔中,也能無縫嵌入shiny系統的webapp中,兼容性可稱之為逆天。

接下來以中國地圖為例,先對該地圖所能呈現和調用的地圖類型做一個簡短的介紹,深入應用系列技巧可能要等到年后才能陸續更新,大小耐心等吧!

library(plyr)

library(mapdata)

library(leaflet)

library(maptools)

library(ggplot2)

導入中國各省會城市地理信息數據:

province_city <- read.csv("c:/rstudy/chinaprovincecity.csv") 

province_city$size<-round(runif(34,5,10),2)

province_city$type<-factor(sample(LETTERS[1:5],34,replace=TRUE))

co<-substr(rainbow(34),1,7)

province_city<-data.frame(province_city,co)

leaflet函數的基本語法結構如下:

#該句加載地圖數據,也可以說是對地圖的初始化操作,相當于ggplot2作圖系統中的ggplot()函數,會建立一個沒有內容的空白圖層面板。

m<-leaflet(data=province_city)    

#該句設定所要展示的圖層中心位置,參數為帶有數據的地圖圖層、經緯度信息以及呈現的縮放級別(3~9級不等)。

setView(m,lng=116.38,lat=39.9,zoom=3)

#該句會自動調用一個默認的地圖圖層作為頁面底圖。其實是一個圖層函數,相當于ggplot系統的geom_XXX對象。

m<-addTiles(m)

#該句也是一個圖層對象函數,主要呈現點對象信息,點標識為常見的雨滴形狀,當然也可以進行自定義。

addMarkers(m,lng=~jd,lat=~wd,popup=~city) #地標符號

如何進行leaflet在線地圖的解析

以上四局代碼會制作出一個以province_city為數據源、以(116.38,39.9)為視覺中心,縮放級別為3級,點標識對象為city的中國行政地圖出來。

而且圖表原生支持動態操作,你可以使用鼠標滾輪進行放大縮小操作(也可以使用頁面左上角的加減號進行操作),每一個點標識都是支持鼠標點擊顯示彈窗信息的。(彈窗信息中支持定義文本、圖片、視頻、超鏈接,當然這些需要對html語言有一定的操作經驗)。

該函數的另一大特色是,原生支持管道函數操作,讓你的代碼簡潔、易懂、高效。(很多R函數是需要打開dplyr包并借助其完成對于管道函數的支持)。

以上例子我們可以完全使用管道操作函數進行代碼簡化。

leaflet(province_city)%>%addTiles()%>%setView(lng=116.38,lat=39.9,zoom=3)%>%addMarkers(lng=~jd,lat=~wd,popup=~city) 

如何進行leaflet在線地圖的解析

leaflet函數支持的點有三類(我所知的),默認的是雨滴形狀(addMarkers),還有兩種分別是addCircle、addCircleMarkers。

addCircle是實心點,只有一個顏色屬性,addCircleMarkers是帶輪廓的圓點,可以分別對輪廓和內園進行顏色設定,兩者都支持大小(面積)映射。

當然剩余兩種最為常見的地圖圖層屬性就是線和面了,這是物理空間的重要三要素嘛

線圖層:

addPolylines

面圖層:addPolygons

其實這些對象和ggplot中的圖層對象對應的很完整,geom_point()\geom_line\geom_polygon

除此之外,無外乎顏色映射參數、圖例參數等。

顏色映射對于數據地圖而言是最復雜也最為重要的視覺對象,畢竟你的目光中要有很大一部分數據墨水比是由色彩來呈現的,但是小魔方再在前講解ggplot數據地圖系列的時候已經講解過非常詳細的顏色映射規則。

針對數據地圖而言,顏色映射要依據數據類型而定,數值型變量(包含定距變量、定比變量)需要使用連續漸變色進行映射,因子變量(包含分類及有序)需要使用分類色、或者同色系的離散漸變進行顏色映射。

在leaflet函數中對顏色進行了非常精準和高效的分類。

1、用于連續數值的:colorNumeric,colorBin和colorQuantile;

2、用于分類輸入,colorFactor。

colorNumeric:針對數值變量進行均勻插值,將顏色(定義的)連續均勻分布在數值區間內。

colorBin:針對數值型變量進行數量段的分組,然后按照組別分別填色。(其實相當于對數值型變量進行劃組,生成有序的因子組,然后以分段因子變量的形式進行顏色映射,但是這個過程在leaflet函數中是自動化完成的,無需我們手工生成新變量,這一點兒是leaflet函數相對于ggplot函數在制作數據地圖方面的重要優勢)。

colorQuantile:也是針對數值型變量,只是是以百分比分位點的形式將數值變量劃分為一組百分比分位點區間(其實理念和過程與colorBin一致,只是從絕對量分組變成了百分比分組),然后進行顏色映射。

colorFactor:這個就是單純的分類變量(因子或者有序)映射的顏色設置方式。

圖例對象:

addLegend:是添加圖例的圖層對象,相當于ggplot中的guilde函數。

接來下給大家大致展現以下leaflet所能呈現的最為常見的幾種風格地圖樣式。

地圖類型:

addProviderTiles("Esri.WorldStreetMap")  #淺色

addProviderTiles("Esri.WorldImagery")    #深色深色衛星云圖

addProviderTiles("Esri.WorldTerrain")    #亮白色

addProviderTiles("Esri.NatGeoWorldMap")  #深沉輪廓色

addProviderTiles("Stamen.Toner")         #Third-Party Tiles

addProviderTiles("CartoDB.Positron")

addProviderTiles("Stamen.TonerLabels")   #

leaflet()%>%addTiles() #默認風格

如何進行leaflet在線地圖的解析

leaflet()%>%addProviderTiles("Esri.WorldStreetMap")

如何進行leaflet在線地圖的解析

leaflet()%>%addProviderTiles("Esri.WorldImagery")

如何進行leaflet在線地圖的解析

leaflet()%>%addProviderTiles("Esri.WorldTerrain")

如何進行leaflet在線地圖的解析

leaflet()%>%addProviderTiles("Esri.NatGeoWorldMap")

如何進行leaflet在線地圖的解析

leaflet()%>%addProviderTiles("Stamen.Toner")

如何進行leaflet在線地圖的解析

leaflet()%>%addProviderTiles("CartoDB.Positron")

如何進行leaflet在線地圖的解析

leaflet()%>%addProviderTiles("Stamen.TonerLabels")

如何進行leaflet在線地圖的解析

關于如何進行leaflet在線地圖的解析問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

忻州市| 汾西县| 长泰县| 东海县| 利津县| 平乐县| 永嘉县| 板桥市| 昌宁县| 西乌珠穆沁旗| 兴海县| 兴业县| 顺昌县| 西畴县| 定南县| 勐海县| 静乐县| 抚顺县| 凤阳县| 灵川县| 昭平县| 安多县| 阿图什市| 定兴县| 嘉兴市| 苍南县| 武邑县| 稷山县| 贡山| 赤水市| 华宁县| 东安县| 大余县| 永靖县| 荣昌县| 兰考县| 互助| 奈曼旗| 镇安县| 瓮安县| 孟津县|