在由空间多边形数据框构成的传单地图中添加标记

时间:2017-09-01 14:59:30

标签: r r-leaflet

我想在由空间多边形文件制作的地图上放置基于lat long的标记(我已经在数据框中有这些数据)。 我可以在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

这给了我这个 This is the output 现在我只想查看印度地图,以便让其他国家变得空白。

为了达到这个目的,我正在尝试在印度的shapefile上进行相同的绘图标记练习,是否有其他方法可以做到这一点?

当我使用此代码时

leaflet()%>%
    addPolygons(data = s)%>%
    addMarkers(lng = 73.229354, lat = 25.761765,popup = "single marker")
    # here s is a spatialolygondataframe of country india.

我得到了这个enter image description here

但我不明白我怎么能作为输入多次lat来制作标记。我试过这个

      leaflet()%>%

    addMarkers(lng = datm$lon, lat = datm$lat,popup = datm$city)%>%
  addPolygons(data = s) 

但这给了我错误。 任何帮助表示赞赏我已经坚持了很长一段时间,这令人沮丧。我搜索了任何类似的主题,但找不到任何解决我问题的方法。

1 个答案:

答案 0 :(得分:1)

使用您的示例(此处称为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)

如您所见,地图上会出现多个标记。

enter image description here

您遇到的问题源于没有正确编写addMarkers的语法,~需要在latlng参数中说明。