如何在r的某个缩放级别上显示标记?

时间:2019-07-17 17:17:27

标签: r shiny leaflet react-leaflet

我正在尝试从mrt数据集中获取这组标记,使其以特定的缩放级别显示。我是r语言的新手,并希望对此提供一些建议。 我尝试使用应该使标记在特定缩放级别出现的if statement。但这不起作用。

这是mrt数据的示例

 stn_code   mrt_station      lat      lon
1      NS1   Jurong East 1.333131 103.7421
2      NS2   Bukit Batok 1.349064 103.7496
3      NS3  Bukit Gombak 1.359037 103.7518
4      NS4 Choa Chu Kang 1.385385 103.7443
5      NS5       Yew Tee 1.397329 103.7475
6      NS7        Kranji 1.425227 103.7620

这是呈现传单地图的代码部分。

 output$mymap <- renderLeaflet({
        leaflet(data=df()) %>% 
            addTiles() %>% 
            addPolygons(data=adm, weight = 3, fillColor = "white", popup=popup)%>%
            addMarkers(clusterOptions = markerClusterOptions(),
                       label = paste(df()$address,',',df()$town))%>%
            if (input$map_zoom>6){
                addMarkers(data=mrt,lat = ~lat,lng = ~lon,label=mrt$mrt_station,icon = mrticon)

            }

    })

谢谢!

1 个答案:

答案 0 :(得分:0)

仅从对代码的高层次审查中,您可能需要这里或至少为您提供了正确的方向。要获取更多帮助 ,您必须提供一个最低限度的工作示例 应用。 -

output$mymap <- renderLeaflet({
  leaflet(data=df()) %>% 
    addTiles() %>% 
    addPolygons(data=adm, weight = 3, fillColor = "white", popup=popup)%>%
    addMarkers(clusterOptions = markerClusterOptions(),
               label = paste(df()$address,',',df()$town))
})

observe({
    if(input$mymap_zoom > 6) {
      leafletProxy("mymap", data = mrt) %>% 
        addMarkers(
          lat = ~lat,
          lng = ~lon,
          label=mrt$mrt_station,
          icon = mrticon,
          layerID = "some_markers"
        )
    } else {
      leafletProxy("mymap") %>% 
        clearMarkers("some_markers")
    }
})