R 如何直接读取包含要素集合的geojson文件

R 如何直接读取包含要素集合的geojson文件,r,leaflet,shiny,R,Leaflet,Shiny,我的问题是如何读取包含要素集合的geojson文件,以便将其传单。我看过joe的github,但他没有使用外部数据集,而是手动创建了geojson。我不知道是否 可以直接将geojson文件读入传单吗 如果没有,那么在shiny(Joe的文章中是multi polygon)中,功能集合的结构是什么样子的?如何以更快更简单的方式创建它 对于问题1,参考,您可以直接提供geojson字符串,而不是示例中的列表 所提供的示例也提到了它 您还可以使用GeoJSON字符串值而不是结构化字符串 像这样的Ge

我的问题是如何读取包含要素集合的geojson文件,以便将其传单。我看过joe的github,但他没有使用外部数据集,而是手动创建了geojson。我不知道是否

  • 可以直接将geojson文件读入传单吗
  • 如果没有,那么在shiny(Joe的文章中是multi polygon)中,功能集合的结构是什么样子的?如何以更快更简单的方式创建它

  • 对于问题1,参考,您可以直接提供geojson字符串,而不是示例中的列表

    所提供的示例也提到了它

    您还可以使用GeoJSON字符串值而不是结构化字符串 像这样的GeoJSON对象

    您可以使用来读取GeoJSON文件


    对于问题2,问题1没有问题。

    您可能希望能够在
    R-shinny
    R
    中直接操作GeoJSON文件,而不是读取静态文件

    如前所述,您可以将包含GeoJSON的字符串馈送到
    传单
    ,例如此GeoJSON特性集合:

    {
      "type": "FeatureCollection",
      "features": [
    {
        "type": "Feature",
        "properties": {"party": "Republican"},
        "id": "North Dakota",
        "geometry": {
            "type": "Polygon",
            "coordinates": [[
                [-104.05, 48.99],
                [-97.22,  48.98],
                [-96.58,  45.94],
                [-104.03, 45.94],
                [-104.05, 48.99]
            ]]
        }
    },
    {
        "type": "Feature",
        "properties": {"party": "Democrat"},
        "id": "Colorado",
        "geometry": {
            "type": "Polygon",
            "coordinates": [[
                [-109.05, 41.00],
                [-102.06, 40.99],
                [-102.03, 36.99],
                [-109.04, 36.99],
                [-109.05, 41.00]
            ]]
        }
    }
      ]
    }
    
    然后,您可以使用
    RJSONIO::fromJSON
    以示例中提供的格式读取此对象,并在
    R
    中对其进行如下操作(注意:似乎您必须在读取GeoJSON文件后添加样式,而不是读取已经具有样式的GeoJSON FeatureCollection文件):

    有帮助吗?
    geojson <- RJSONIO::fromJSON(fileLocation)
    geojson[[2]][[1]]$properties$style <- list(color = "red",fillColor = "red")
    geojson[[2]][[2]]$properties$style <- list(color = "blue",fillColor = "blue")
    geojson$style <- list(weight = 5,stroke = "true",fill = "true",opacity = 1,fillOpacity = 0.4)
    
    geojson <- list(
      type = "FeatureCollection",
      features = list(         
            list(
              type = "Feature",
              geometry = list(type = "MultiPolygon",
                              coordinates = list(
                                list(
                                  list(
                                    c(-109.05, 41.00),
                                    c(-102.06, 40.99),
                                    c(-102.03, 36.99),
                                    c(-109.04, 36.99),
                                    c(-109.05, 41.00)
                                  )
                                )
                              )
              ),
              properties = list(
                party = "Democrat",
                style = list(
                  fillColor = "blue",
                  color = "blue"
                )
              ),
              id = "Colorado"
            ),
            list(
              type = "Feature",
              geometry = list(type = "MultiPolygon",
                              coordinates = list(
                                list(
                                  list(  
                                    c(-104.05, 48.99),
                                    c(-97.22,  48.98),
                                    c(-96.58,  45.94),
                                    c(-104.03, 45.94),
                                    c(-104.05, 48.99)
                                  )
                                )
                              )
              ),
              properties = list(
                party = "Republican",
                style = list(
                  fillColor = "red",
                  color = "red"
                )
              ),
              id = "North Dakota"
            )
        ),
      style = list(
              weight = 5,
              stroke = "true",
              fill = "true",
              fillOpacity = 0.4
              opacity = 1
            ))