Создание картограммы с точечными данными с использованием voronoi, созданного в Leaflet Surface_polygons

i не эксперт, но это работает для меня ..

$sql = "desc MyTable";
$result = @mysql_query($sql);
while($row = @mysql_fetch_array($result)){
    echo $row[0]."<br>"; // returns the first column of array. in this case Field

      // the below code will return a full array-> Field,Type,Null,Key,Default,Extra    
      // for ($c=0;$c<sizeof($row);$c++){echo @$row[$c]."<br>";}    

}
1
задан Jim 20 March 2019 в 09:59
поделиться

1 ответ

Это было новым для меня тоже. Никогда раньше не работал с Вороной. Но проблема в том, что ваш stations фрейм данных теряет все свои функции с st_union().

Простое добавление не кажется жизнеспособным, поскольку порядок многоугольников не совпадает с порядком точек ранее. Поэтому пространственное соединение может быть хорошим обходным путем.

Используя мои собственные выборочные данные:

library(sf)
library(leaflet)

#will work with any polygon
samplepoints_sf <- st_sample(bw_polygon, size = 2000, type = "random", crs = st_crs(4326))[1:500]
# although coordinates are longitude/latitude, st_intersects assumes that they are planar

#create an sf-object like your example
bw_sf <- st_sf("some_variable" = sample(1:50, 500, replace = TRUE), geometry = samplepoints_sf)

#create the voronoi diagram, "some_variable" gets lost.
v <- bw_sf %>% 
  st_union() %>%
  st_voronoi() %>%
  st_collection_extract()

#do a spatial join with the original bw_sf data frame to get the data back
v_poly <- st_cast(v) %>% 
            st_intersection(bw_polygon) %>%
              st_sf() %>%
                st_join(bw_sf, join = st_contains)

#create a palette (many ways to do this step)
colors <- colorFactor(
  palette = c("green", "yellow", "red"),
  domain = (v_poly$some_variable)

#create the leaflet
leaflet(v_poly) %>% addTiles() %>%
                 addPolygons(fillColor = colors(v_poly$some_variable),
                             fillOpacity = 0.7,
                             weight = 1,
                             popup = paste("<strong> some variable: </strong>",v_poly$some_variable))

Итак, надеюсь, это работает для вас.

enter image description here

0
ответ дан Humpelstielzchen 20 March 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: