在由空间多边形数据框制作的传单地图中添加标记
Adding markers in a leaflet map made from spatial polygons dataframe
我想在由空间多边形文件制作的地图上放置基于经纬度的标记(我已经在数据框中拥有此数据)。
我可以在 addTiles
函数的帮助下在 openstreetMap 上执行此操作,但被空间多边形文件卡住了。以下是使用 openstreet 地图作为背景的代码
datm <- read.csv("lat_data2.csv", header = TRUE)
#This reads the lat long data file
来自此文件的示例数据:
brand city lon lat
Tata Motors ADILABAD 78.5320107 19.6640624
Maruti Adoni 77.2728368 15.6322227
Honda Agra 78.5080745 27.1766701
Hyundai Agra 78.0080745 26.6766701
然后我使用
绘制它
leaflet(data = datm)%>%
addProviderTiles("Esri.WorldGrayCanvas", options = tileOptions(minZoom=5, maxZoom=7))%>%
addMiniMap(position = "bottomright")%>%
addMarkers(datm, lng = ~lon, lat = ~lat,label = ~datm$city,icon = ~caricon)
#caricon is a list of png icon that i have made
这给了我这个
现在我只想看印度地图,有没有办法让其他国家变成空白。
为了实现这个目标,我正在尝试在印度的 shapefile 上做同样的绘制标记的练习,有没有其他方法可以做到这一点?
当我使用这段代码时
leaflet()%>%
addPolygons(data = s)%>%
addMarkers(lng = 73.229354, lat = 25.761765,popup = "single marker")
# here s is a spatialolygondataframe of country india.
我明白了
但我不明白如何将多个经纬度作为输入来制作标记。我试过了
leaflet()%>%
addMarkers(lng = datm$lon, lat = datm$lat,popup = datm$city)%>%
addPolygons(data = s)
但这给了我错误。
感谢您的帮助我已经坚持了很长一段时间,这令人沮丧。我搜索了任何类似的主题,但找不到任何解决我问题的方法。
使用您的示例(此处称为 df)和一个名为 india
的 shapefile,读起来像 india <- readOGR('INDIA.shp')
您的代码应该是:
leaflet(data = df) %>%
addProviderTiles("Esri.WorldGrayCanvas", options = tileOptions(minZoom=5, maxZoom=7))%>%
addMiniMap(position = "bottomright")%>%
addMarkers(df, lng = ~lon, lat = ~lat,label = ~df$city) %>%
addPolygons(data = india)
如您所见,地图上出现了多个标记。
您遇到的问题源于没有正确编写 addMarkers 的语法,~
需要在 lat
和 lng
参数中说明。
我想在由空间多边形文件制作的地图上放置基于经纬度的标记(我已经在数据框中拥有此数据)。
我可以在 addTiles
函数的帮助下在 openstreetMap 上执行此操作,但被空间多边形文件卡住了。以下是使用 openstreet 地图作为背景的代码
datm <- read.csv("lat_data2.csv", header = TRUE)
#This reads the lat long data file
来自此文件的示例数据:
brand city lon lat
Tata Motors ADILABAD 78.5320107 19.6640624
Maruti Adoni 77.2728368 15.6322227
Honda Agra 78.5080745 27.1766701
Hyundai Agra 78.0080745 26.6766701
然后我使用
绘制它leaflet(data = datm)%>%
addProviderTiles("Esri.WorldGrayCanvas", options = tileOptions(minZoom=5, maxZoom=7))%>%
addMiniMap(position = "bottomright")%>%
addMarkers(datm, lng = ~lon, lat = ~lat,label = ~datm$city,icon = ~caricon)
#caricon is a list of png icon that i have made
这给了我这个
为了实现这个目标,我正在尝试在印度的 shapefile 上做同样的绘制标记的练习,有没有其他方法可以做到这一点?
当我使用这段代码时
leaflet()%>%
addPolygons(data = s)%>%
addMarkers(lng = 73.229354, lat = 25.761765,popup = "single marker")
# here s is a spatialolygondataframe of country india.
我明白了
但我不明白如何将多个经纬度作为输入来制作标记。我试过了
leaflet()%>%
addMarkers(lng = datm$lon, lat = datm$lat,popup = datm$city)%>%
addPolygons(data = s)
但这给了我错误。 感谢您的帮助我已经坚持了很长一段时间,这令人沮丧。我搜索了任何类似的主题,但找不到任何解决我问题的方法。
使用您的示例(此处称为 df)和一个名为 india
的 shapefile,读起来像 india <- readOGR('INDIA.shp')
您的代码应该是:
leaflet(data = df) %>%
addProviderTiles("Esri.WorldGrayCanvas", options = tileOptions(minZoom=5, maxZoom=7))%>%
addMiniMap(position = "bottomright")%>%
addMarkers(df, lng = ~lon, lat = ~lat,label = ~df$city) %>%
addPolygons(data = india)
如您所见,地图上出现了多个标记。
您遇到的问题源于没有正确编写 addMarkers 的语法,~
需要在 lat
和 lng
参数中说明。