您好,登錄后才能下訂單哦!
本篇內容介紹了“R語言高級輔助特性怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
附加屬性:
測度工具:Leaflet Measure
###增加該工具可以輕而易舉的讓你在可視化地圖中通過鼠標打點,測量兩點之間的距離,如果是閉合區域,則可以直接計算閉合區域的真實面積。
網格線:Graticule
### 網格線可以提供平面坐標系下地理空間的經緯度位置參考線。
晝夜分界線:Terminator (day/night indicator)
###晝夜分界線可以提供一天中不同地區的晝夜分界狀況。
mini小地圖:Minimap
mini窗口小地圖可以提供定位窗口,讓你知道主版面中位置在更大范圍地理區域上的大致方位,就相當于游戲中的mini導航圖。
輔助按鈕:EasyButton
輔助按鈕可以提供一鍵初始化比例尺,一鍵定位功能。
自定義js屬性:Custom JavaScript with htmlwidgets::onRender
你可以利用leaflet與HTML的接口工具對地圖版面進行更加豐富的屬性設置。
測度工具:Leaflet Measure
library(leaflet)
m<-leaflet()%>%addTiles()
m %>%fitBounds(-73.9,40.75,-73.95,40.8) %>%addMeasure()
右上側的小彈窗打開之后選擇創建測距選項,就可以通過鼠標打點兒,測量兩點之間的地理距離,如果是三個以上的點,則會測量出閉合多邊形區域的面積。
m %>%
fitBounds(13.76134, 52.675499, 13.0884, 52.33812) %>% #設定版面呈現的地理區域范圍
addMeasure(
position = "bottomleft", #測距菜單位置
primaryLengthUnit = "meters", #測量的點距離輸出單位
primaryAreaUnit = "sqmeters", #測量的閉合多邊形區域面積輸出單位
activeColor = "#3D535D", #
completedColor = "#7D4479")
網格線:Graticule
leaflet() %>% addTiles() %>% setView(0,0,2) %>% addGraticule()
leaflet() %>% addTiles() %>% setView(0,0,2) %>%
addGraticule(interval = 10, style = list(color = "#FF0000", weight = 1))
而且網格線系統是可控元素,控制方式就是將其當成一個單獨的圖層,然后分組。
leaflet() %>% addTiles() %>% setView(0,0,2) %>%
addGraticule(group = "Graticule") %>%
addLayersControl(overlayGroups = c("Graticule"),options=layersControlOptions(collapsed = FALSE))
晝夜分界線:Terminator (day/night indicator)
leaflet() %>% addTiles() %>% addTerminator()
晝夜分界線支持自定義日期和分組功能:
leaflet() %>%
addTiles() %>%
addTerminator(
resolution=10,
time = "2013-06-20T21:00:00Z",
group = "daylight") %>%
addLayersControl(
overlayGroups = "daylight",
options = layersControlOptions(collapsed = FALSE))
mini導航地圖:Minimap
leaflet() %>% setView(0,0,3) %>%
addProviderTiles(providers$Esri.WorldStreetMap) %>%
addMiniMap()
mini導航地圖中的地圖背景也是支持自定義的:
leaflet() %>% setView(0,0,3) %>%
addProviderTiles(providers$Esri.WorldStreetMap) %>%
addMiniMap(tiles = providers$Esri.WorldStreetMap,toggleDisplay = TRUE)
輔助工具菜單:
library(htmltools)
library(htmlwidgets)
leaflet() %>% addTiles() %>%
addEasyButton(easyButton( #添加一鍵恢復初始窗口比利時
icon="fa-globe", title="Zoom to Level 1",
onClick=JS("function(btn, map){ map.setZoom(1); }"))) %>%
addEasyButton(easyButton( #添加一鍵定位功能(根據你的所在位置)
icon="fa-crosshairs", title="Locate Me",
onClick=JS("function(btn, map){ map.locate({setView: true}); }")))
動態效果:
以下代碼展示了如何通過調用js工具控件來通過打開菜單工具開啟地圖上的點聚合功能,同時關閉菜單工具按鈕,關閉點聚合功能。
leaflet() %>% addTiles() %>%
addMarkers(data=quakes,
clusterOptions = markerClusterOptions(),
clusterId = "quakesCluster") %>%
addEasyButton(easyButton(
states = list(
easyButtonState( #狀態1:打開菜單,開啟點聚合
stateName="unfrozen-markers",
icon="ion-toggle",
title="Freeze Clusters",
onClick = JS("
function(btn,map) {
var clusterManager =
map.layerManager.getLayer('cluster', 'quakesCluster');
clusterManager.freezeAtZoom();
btn.state('frozen-markers');
}")
),
easyButtonState( #狀態2:關閉菜單,結束點聚合功能
stateName="frozen-markers",
icon="ion-toggle-filled",
title="UnFreeze Clusters",
onClick = JS("
function(btn, map) {
var clusterManager =
map.layerManager.getLayer('cluster', 'quakesCluster');
clusterManager.unfreeze();
btn.state('unfrozen-markers');
}")
)
)
))
自定義js屬性:Custom JavaScript with htmlwidgets::onRender
基礎圖層會根據導航窗內的圖層風格改變而隨之轉換:
mymap<-leaflet() %>% setView(0,0,3)
esri <- grep("^Esri", providers, value = TRUE)
for (provider in esri) {
mymap <-mymap %>% addProviderTiles(provider, group = provider)
}
mymap %>%
addLayersControl(baseGroups = names(esri),
options = layersControlOptions(collapsed = FALSE)) %>%
addMiniMap(tiles = esri[[1]], toggleDisplay = TRUE,
position = "bottomleft") %>%
htmlwidgets::onRender("
function(el, x) {
var myMap = this;
myMap.on('baselayerchange',
function (e) {
myMap.minimap.changeLayer(L.tileLayer.provider(e.name));
})
}")
“R語言高級輔助特性怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。