Jim*_*myT 7 r openstreetmap ggmap
我是一个有空间数据的完整新手.我有以下代码成功绘制有界地图.我想补充一下,data.frame存储点.我提前道歉,因为无法从OpenStreetMap文档中找到这个...下面的代码:
library(OpenStreetMap)
stores <- data.frame(name=c("Commercial","Union","Bedford"),
longitude=c(-70.25042295455933,-70.26050806045532,-70.27726650238037),
latitude=c(43.657471302616806,43.65663299041943,43.66091757424481))
lat <- c(43.68093,43.64278)
lon <- c(-70.29548,-70.24097)
portland <- openmap(c(lat[1],lon[1]),c(lat[2],lon[2]),zoom=15,'osm')
plot(portland,raster=TRUE)
#can't figure out what to put here.
Run Code Online (Sandbox Code Playgroud)
我怀疑商店的格式不适合空间数据.
San*_*att 12
我不知道OpenStreetMap包裹.但是我提供了一个仍然绘制OpenStreet Map的替代方案,但是使用该ggmap包来获取和绘制地图.该get_map函数可以从各种来源获取地图:osm,google,stamen和cloudmade; 设置为source.此外,来源有不同的风格,设置maptype.地图的边界在位置矢量中给出.或者,位置矢量可以给地图的中心设置适当的缩放级别.使用绘制地图ggplot2,因此可以将点和标签添加到地图中,就像将它们添加到任何ggplot对象一样.要运行以下命令,需要安装ggmap和ggplot2软件包.
library(ggmap)
stores <- data.frame(name=c("Commercial","Union","Bedford"),
longitude=c(-70.25042295455933,-70.26050806045532,-70.27726650238037),
latitude=c(43.657471302616806,43.65663299041943,43.66091757424481))
location = c(-70.2954, 43.64278, -70.2350, 43.68093)
# Fetch the map
portland = get_map(location = location, source = "osm")
# Draw the map
portlandMap = ggmap(portland)
# Add the points layer
portlandMap = portlandMap + geom_point(data = stores, aes(x = longitude, y = latitude), size = 5)
# Add the labels
portlandMap + geom_text(data = stores, aes(label = name, x = longitude+.001, y = latitude), hjust = 0)
Run Code Online (Sandbox Code Playgroud)
结果是:

标签可能会在后台丢失.在这种情况下,这样的事情可能是合适的.它使用此处的代码为文本提供大纲.
portlandMap = ggmap(portland) + geom_point(data = stores, aes(x = longitude, y = latitude), size = 5)
theta <- seq(pi/16, 2*pi, length.out=32)
xo <- diff(location[c(1,3)])/250
yo <- diff(location[c(2,4)])/250
for(i in theta) {
portlandMap <- portlandMap + geom_text(data = stores,
aes_(x = stores$longitude + .001 + cos(i) * xo,
y = stores$latitude + sin(i) * yo,
label = stores$name),
size = 5, colour = 'black', hjust = 0)
}
portlandMap +
geom_text(data = stores, aes(x = longitude + .001, y = latitude, label=name),
size = 5, colour = 'white', hjust = 0)
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
7387 次 |
| 最近记录: |