91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何最優雅的操縱json地圖數據

發布時間:2021-12-13 18:17:24 來源:億速云 閱讀:538 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關如何最優雅的操縱json地圖數據,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

知道最近在leaflet社區瀏覽案例的時候,發現大神已經提供了很好的json數據解析方案里,起碼有兩個(保守估計)以上的包可以完勝這個任務,而且是直接調用現成的函數,無需自己編寫方案。

以上所說的解決方案就是利用成熟的json接口(I/O)工具:

geojsonio包和rgdal包:

這兩個包可以在主流的空間格式數據之間進行無縫轉換。

下面以世界地圖為例,演示數據的轉換過程。

library("jsonlite")

library("ggplot2")

library(plyr)

library(dplyr)

library(geojsonio)

library(rgdal)

如果還是停留在使用jsonlite包手工提取數據時代,你可能需要經歷以下不可描述的代碼環節:

setwd("D:/R/mapdata/State")

###

world_data <- fromJSON("world.json")

world_city_data<-world_data$features$properties[,1:2]

world_city_data<-world_data$features$properties[,c("NAME","NAME_LONG","BRK_A3","POP_EST","GDP_MD_EST")]

world_data$features$geometry$coordinates[[1]][,,1]

world_data$features$geometry$coordinates[[1]][,,2]

如何最優雅的操縱json地圖數據

###

而且以上代碼還不能保證每次都好用,可能每遇到一個新的素材,隨著josn內部層級嵌套結構的變化,你都需要隨之更改代碼,工作量那是杠杠的~

可是如果你掌握了以下兩個工具,那么josn數據操縱起來基本就沒煩惱了,就跟之前操縱shp數據一樣,這兩個工作就是將json直接導入成控件格式數據,方便使用者進一步提取內部信息。

world_Map1<-geojson_read("world.json",what="sp") #geojsonio包導入

world_Map2<-readOGR("world.json","OGRGeoJSON") #rgdal包導入

world_Mapdata1<-world_Map1@data%>%.[,c("NAME","NAME_LONG","BRK_A3","POP_EST","GDP_MD_EST")]%>%rename(region=NAME)

world_Mapdata1$id<-rownames(world_Mapdata1)

world_MapdataPloygon1<-fortify(world_Map1)%>%left_join(.,world_Mapdata1[,c(6,1,4)])

ggplot(world_Mapdata1,aes(map_id=region))+

geom_map(aes(fill=POP_EST),map=world_MapdataPloygon1)+

expand_limits(x=world_MapdataPloygon1$long,y=world_MapdataPloygon1$lat)+

scale_fill_gradient2(low="#33A15A",high="#BB0126",mid="#FCFFB7",midpoint=mean(world_Mapdata1$POP_EST))+

coord_map("ortho",orientation=c(0,120,0))+

scale_y_continuous(breaks=(-6:6)*15) +

scale_x_continuous(breaks=(-12:12)*15)+

theme_minimal()+

theme(axis.text=element_blank(),axis.title=element_blank())

如何最優雅的操縱json地圖數據

一個案例應用(來自plotly官網社區,本來是用于展示plot_ly函數應用,這里借用一下)

air <- read.csv('https://raw.githubusercontent.com/plotly/datasets/master/2011_february_us_airport_traffic.csv')

flights <- read.csv('https://raw.githubusercontent.com/plotly/datasets/master/2011_february_aa_flight_paths.csv')

flights$id <- seq_len(nrow(flights))

CairoPNG("D:/world_map.png",1000,900)

showtext.begin()

ggplot()+

geom_polygon(data=world_MapdataPloygon1,aes(x=long,y=lat,group=group),fill="grey95",col="grey")+

geom_segment(data=flights,aes(x=start_lon,y=start_lat,xend=end_lon,yend=end_lat),col="red",size=.2)+

geom_point(data=air,aes(x=long,y=lat,size=cnt),shape=21,fill="#D73434",col="grey",alpha = 0.5)+

scale_y_continuous(breaks=(-6:6)*15) +

scale_x_continuous(breaks=(-12:12)*15)+

scale_size_area(max_size=15)+

coord_map("ortho",orientation=c(25,-100,0))+

theme_minimal()+

theme(axis.text=element_blank(),axis.title=element_blank())

showtext.end()

dev.off()

如何最優雅的操縱json地圖數據

最新版的ggplot2中已經出現了一個新的圖層函數——geom_sf,專門用于處理空間數據格式,這樣算起來,ggplot系統中已經有至少三個可以處理空間數據的函數了,geom_polygon\geom_map\geom_sf(如果不算ggmap這種外接函數的話)。

以上就是如何最優雅的操縱json地圖數據,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

兴安县| 邻水| 宁晋县| 东阿县| 马公市| 永和县| 太仓市| 兴城市| 磴口县| 普兰县| 金溪县| 苗栗县| 龙山县| 天台县| 博湖县| 邵阳县| 工布江达县| 思南县| 赤城县| 乐昌市| 乡城县| 黄龙县| 古交市| 桐城市| 封开县| 凤山县| 万源市| 泸水县| 民和| 项城市| 贵阳市| 温泉县| 都安| 苏尼特右旗| 鹿邑县| 驻马店市| 阳西县| 东安县| 衡山县| 扎兰屯市| 饶阳县|