我正在使用ggmap并希望有一个以澳大利亚为中心的世界地图,我可以轻松地绘制地理编码点.与其他一些映射包相比,ggmap似乎更容易使用.然而,当我使用下面的代码通过地图时,它会出错.
gc <- geocode('australia')
center <- as.numeric(gc)
> map <- get_map(location = center, source="google", maptype="terrain", zoom=0)
Error: zoom must be a whole number between 1 and 21
Run Code Online (Sandbox Code Playgroud)
从get_map帮助:"缩放:地图缩放,从0(全世界)到21(建筑物)的整数,默认值10(城市).openstreetmaps限制缩放18,雄蕊地图的限制取决于地图类型. 'auto'自动确定边界框规格的缩放,默认为中心/缩放规格为10."
将缩放更改为1对于get_map而言不是错误,而是用于绘制该地图
map <- get_map(location = center, source="google", maptype="terrain", zoom=1)
ggmap(map)
Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In min(x) : no non-missing arguments to min; returning Inf
4: In max(x) : …
Run Code Online (Sandbox Code Playgroud) 在过去的几天里,我几乎首先使用R进行映射.我已广泛使用R进行建模等,但之前没有这种工作.我有一些关于shapefile的问题和问题,如何阅读等等.
我已经从澳大利亚统计局下载了形状文件,有许多文件,包括州边界,邮政编码,城市等.形状文件很大,澳大利亚国家边界有大约180万个坐标点,我试过的另一个文件是统计区域,其中有超过800万个.我没有对这个文件做任何事情,因为它对我的R设置来说太大了.
我在里面读了形状文件readShapePoly
并将其转换成如此
AUS@data$id = rownames(AUS@data)
AUS.points = fortify(AUS, region="id")
AUS.df = join(AUS.points, AUS@data, by="id")
Run Code Online (Sandbox Code Playgroud)
一旦我将状态边界形状文件转换SpatialPolygonsDataFrame
为常规数据帧,我就成功地绘制了它,但它花了很长时间,细节太大了.我想用thinnedSpatialPoly
它来简化它,但它给出了错误:
Error in stopifnot(length(Sr@polygons) == nrow(data)) :trying to get slot "polygons" from an object of a basic class ("NULL") with no slots
Run Code Online (Sandbox Code Playgroud)
哪个谷歌无法帮助我.
我的下一个策略是将其读入SAS并使用proc greduce
获取文件并创建密度字段,您可以选择多边形的密度.
proc mapimport out=states datafile='\Digital Boundaries\States\Shape file\STE_2011_AUST.shp';
id ste_code11; run;
proc greduce data = states out = reduced_states;
id ste_code11; run;
Run Code Online (Sandbox Code Playgroud)
SAS有垃圾图形,甚至无法为我绘制图形,所以我导出了数据集并用新的密度字段将其读回到R中,我希望将数据框子集化并在我的图中使用.
我现在的问题是,当我去R的情节时,我得到了这个
ggplot(data=states.df, aes(X, Y, group=SEGMENT)) +
geom_polygon(colour='black', fill='white') + …
Run Code Online (Sandbox Code Playgroud) 我制作了一个闪亮的应用程序,它使用ggmap返回静态地图.但是,当我想覆盖邮政编码边界时,我遇到一个错误,ggplot无法找到数据集.
数据集poa是邮政编码边界的数据框,即具有多边形ID的拉特和隆起.我已经尝试过添加,environment = environment()
但这并没有解决我的问题.我知道数据存在,因为我调用print(str(poa))
哪些打印到R控制台.
任何人都可以建议我的工作,以便ggplot可以访问poa数据帧?我很抱歉这不是一个非常可重复的例子.
更新:当我使用此代码时,ggplot能够访问poa数据帧:
print(ggmap(map)) + geom_polygon(data = poa, aes(x = LON, y = LAT, group = order), alpha = .5, colour = "black", fill = NA))
Run Code Online (Sandbox Code Playgroud)
但我需要对地图的基础层进行嵌套调用ggplot,当我这样做时ggplot无法找到数据
这是我的server.R代码
我正在使用isolate,因为我在我的ui.R中有一个动作按钮,我只想在点击它时更新绘图.
library(shiny)
library(ggmap)
library(RODBC)
# Define server logic required to summarize and view the selected dataset
shinyServer(function(input, output) {
output$searchString <- renderText({
if (input$searchButton == 0)
return()
isolate({input$searchString})
})
mapSourceInput <- reactive({
switch(input$mapSource
, "google" = "google"
, "stamen" = "stamen")
})
mapTypeInput <- reactive({ …
Run Code Online (Sandbox Code Playgroud)