闪亮传单地图上的自定义标记
Custom markers on Shiny leaflet map
我需要根据它们的类型在闪亮的传单地图点上进行映射 - 总共四种类型,具有不同颜色的相同标记。
我检查了这个:
https://rstudio.github.io/leaflet/markers.html
这看起来像我的回复,但我无法修复它:(
此代码已在答案中共享
library(dplyr)
library(leaflet)
mutate(quakes, group = cut(mag, breaks = c(0, 5, 6, Inf), labels = c("blue",
"green", "orange"))) -> mydf
### I edit this png file and created my own marker.
### https://raw.githubusercontent.com/lvoogdt/Leaflet.awesome-
markers/master/dist/images/markers-soft.png
quakeIcons <- iconList(blue = makeIcon("/Users/jazzurro/Documents/Stack
Overflow/blue.png", iconWidth = 24, iconHeight =32),
green = makeIcon("/Users/jazzurro/Documents/Stack
Overflow/green.png", iconWidth = 24, iconHeight =32),
orange = makeIcon("/Users/jazzurro/Documents/Stack
Overflow/orange.png", iconWidth = 24, iconHeight =32))
leaflet(data = mydf[1:100,]) %>%
addTiles() %>%
addMarkers(icon = ~quakeIcons[group])
我的代码基本一样
# Create our own custom icons
teamIcons <- iconList(
A = makeIcon("C:/Map/Asset 20.png", iconWidth = 18, iconHeight = 18),
B = makeIcon("C:/Map/Asset 21.png", iconWidth = 18, iconHeight = 18),
C = makeIcon("C:/Map/Asset 22.png", iconWidth = 18, iconHeight = 18),
D = makeIcon("C:/Map/Asset 23.png", iconWidth = 18, iconHeight = 18))
data1 <- 数据 %>% mutate(type = factor(data$type), c("A", "B", "C", "D"))
那我就
m <- leaflet(data=data) %>%
addProviderTiles(providers$Stamen.TonerLite) %>%
addMarkers(~data1$long, ~data1$lat, icon = ~teamIcons[data1$type], popup
state_popup)
addMarkers 的数据取自另一个数据集 - data1,而不是数据。当我使用很棒的图标时,它不会产生问题。当我使用目录中我自己的图标时,我在地图上有一个普通的蓝色标记。
无效的下标类型'logical'
亲自解决。
library(leaflet)
library(dplyr)
每个图标都是我自己定制的数字,放在工作目录下。
然后使用icon_list()
# Create our own custom icons
icon_list <- iconList(
project1 = makeIcon("C:/Map/1.png", iconWidth = 24, iconHeight = 30),
project2 = makeIcon("C:/Map/2.png", iconWidth = 24, iconHeight = 30)
等你有多少就多少
project1、project2 等在数据集列中匹配相同的名称,当然在数据集中每个项目都应该有经度和纬度。
然后
data2 <- data %>% mutate(type = factor(data$project_id), c("project1",
"project2")
在服务器中,简单的代码是这样的
m <- leaflet(data=data) %>%
addProviderTiles(providers$Stamen.TonerLite) %>%
addMarkers(~data2$long, ~data2$lat, icon=~icon_list[data2$project_id],
popup = state_popup)
感谢
of Oleksiy,帮了我大忙。
但我在 mutate 函数中发现了两个错误,它遗漏了要转换的数据名的名称,并且在您创建 data2
时,我猜想因子函数必须与 data2
数据框一起使用.
所以
mutate(data2,type=factor(data2$project_id),c("project1","project2"))
而不是
mutate(type=factor(data$project_id),c("project1","project2")`.
我需要根据它们的类型在闪亮的传单地图点上进行映射 - 总共四种类型,具有不同颜色的相同标记。
我检查了这个:
https://rstudio.github.io/leaflet/markers.html
这看起来像我的回复,但我无法修复它:(
此代码已在答案中共享
library(dplyr)
library(leaflet)
mutate(quakes, group = cut(mag, breaks = c(0, 5, 6, Inf), labels = c("blue",
"green", "orange"))) -> mydf
### I edit this png file and created my own marker.
### https://raw.githubusercontent.com/lvoogdt/Leaflet.awesome-
markers/master/dist/images/markers-soft.png
quakeIcons <- iconList(blue = makeIcon("/Users/jazzurro/Documents/Stack
Overflow/blue.png", iconWidth = 24, iconHeight =32),
green = makeIcon("/Users/jazzurro/Documents/Stack
Overflow/green.png", iconWidth = 24, iconHeight =32),
orange = makeIcon("/Users/jazzurro/Documents/Stack
Overflow/orange.png", iconWidth = 24, iconHeight =32))
leaflet(data = mydf[1:100,]) %>%
addTiles() %>%
addMarkers(icon = ~quakeIcons[group])
我的代码基本一样
# Create our own custom icons
teamIcons <- iconList(
A = makeIcon("C:/Map/Asset 20.png", iconWidth = 18, iconHeight = 18),
B = makeIcon("C:/Map/Asset 21.png", iconWidth = 18, iconHeight = 18),
C = makeIcon("C:/Map/Asset 22.png", iconWidth = 18, iconHeight = 18),
D = makeIcon("C:/Map/Asset 23.png", iconWidth = 18, iconHeight = 18))
data1 <- 数据 %>% mutate(type = factor(data$type), c("A", "B", "C", "D"))
那我就
m <- leaflet(data=data) %>%
addProviderTiles(providers$Stamen.TonerLite) %>%
addMarkers(~data1$long, ~data1$lat, icon = ~teamIcons[data1$type], popup
state_popup)
addMarkers 的数据取自另一个数据集 - data1,而不是数据。当我使用很棒的图标时,它不会产生问题。当我使用目录中我自己的图标时,我在地图上有一个普通的蓝色标记。
无效的下标类型'logical'
亲自解决。
library(leaflet)
library(dplyr)
每个图标都是我自己定制的数字,放在工作目录下。
然后使用icon_list()
# Create our own custom icons
icon_list <- iconList(
project1 = makeIcon("C:/Map/1.png", iconWidth = 24, iconHeight = 30),
project2 = makeIcon("C:/Map/2.png", iconWidth = 24, iconHeight = 30)
等你有多少就多少
project1、project2 等在数据集列中匹配相同的名称,当然在数据集中每个项目都应该有经度和纬度。
然后
data2 <- data %>% mutate(type = factor(data$project_id), c("project1",
"project2")
在服务器中,简单的代码是这样的
m <- leaflet(data=data) %>%
addProviderTiles(providers$Stamen.TonerLite) %>%
addMarkers(~data2$long, ~data2$lat, icon=~icon_list[data2$project_id],
popup = state_popup)
感谢
但我在 mutate 函数中发现了两个错误,它遗漏了要转换的数据名的名称,并且在您创建 data2
时,我猜想因子函数必须与 data2
数据框一起使用.
所以
mutate(data2,type=factor(data2$project_id),c("project1","project2"))
而不是
mutate(type=factor(data$project_id),c("project1","project2")`.