@@ -4,9 +4,19 @@ test_that("add_pointcloud accepts multiple objects", {
4
4
5
5
library(sfheaders )
6
6
7
- geo <- ' {"elevation":12345.0,"fill_colour":[0.266667,0.003922,0.329412,1 .0],"lon":69.11,"lat":34.28,"geometry":[69.11,34.28,12345.0]}'
7
+ geo <- ' {"elevation":12345.0,"fill_colour":[68.0,1.0,84.0,255 .0],"lon":69.11,"lat":34.28,"geometry":[69.11,34.28,12345.0]}'
8
8
poly <- ' [{\" elevation\" :123.0,\" fill_colour\" :\" #440154FF\" ,\" polyline\" :\" _ifpEo`ydL\" }]'
9
9
10
+ check <- function ( geo , res ) {
11
+ geo <- jsonify :: from_json( geo )
12
+ res <- jsonify :: from_json( res $ x $ calls [[1 ]]$ args [[2 ]] )
13
+ expect_equal(geo [[" lon" ]], res [[" lon" ]])
14
+ expect_equal(geo [[" lat" ]], res [[" lat" ]])
15
+ expect_equal(geo [[" fill_colour" ]], res [[" fill_colour" ]])
16
+ expect_equal(geo [[" stroke_colour" ]], res [[" stroke_colour" ]])
17
+ expect_equal(geo [[" stroke_width" ]], res [[" stroke_width" ]])
18
+ }
19
+
10
20
# # sf
11
21
set_token(" abc" )
12
22
m <- mapdeck()
@@ -15,32 +25,32 @@ test_that("add_pointcloud accepts multiple objects", {
15
25
df $ elev <- 12345
16
26
sf <- sfheaders :: sf_point( df [1 , ], x = " lon" , y = " lat" , z = " elev" )
17
27
p <- add_pointcloud(map = m , data = sf )
18
- expect_equal( as.character( p $ x $ calls [[ 1 ]] $ args [[ 2 ]] ), geo )
28
+ check( geo , p )
19
29
20
30
# # sfencoded
21
31
enc <- googlePolylines :: encode( sf )
22
32
enc $ z <- 123
23
33
p <- add_pointcloud( map = m , data = enc , elevation = " z" )
24
- expect_equal( as.character( p $ x $ calls [[ 1 ]] $ args [[ 2 ]] ), poly )
34
+ check( poly , p )
25
35
26
36
# # sfencodedLite
27
37
enc <- googlePolylines :: encode( sf , strip = T )
28
38
enc $ z <- 123
29
39
p <- add_pointcloud( map = m , data = enc , elevation = " z" )
30
- expect_equal( as.character( p $ x $ calls [[ 1 ]] $ args [[ 2 ]] ), poly )
40
+ check( poly , p )
31
41
32
42
# # data.frame with polyline
33
43
df <- as.data.frame( enc )
34
44
df $ geometry <- unlist( df $ geometry )
35
45
p <- add_pointcloud( map = m , data = df , elevation = " z" , polyline = " geometry" )
36
- expect_equal( as.character( p $ x $ calls [[ 1 ]] $ args [[ 2 ]] ), poly )
46
+ check( poly , p )
37
47
38
48
# # data.frame
39
49
df <- capitals [1 , ]
40
50
df $ z <- 12345
41
- geo <- ' {"elevation":12345.0,"fill_colour":[0.266667,0.003922,0.329412,1 .0],"lon":69.11,"lat":34.28,"geometry":[69.11,34.28,12345.0]}'
51
+ geo <- ' {"elevation":12345.0,"fill_colour":[68.0,1.0,84.0,255 .0],"lon":69.11,"lat":34.28,"geometry":[69.11,34.28,12345.0]}'
42
52
p <- add_pointcloud( map = m , data = df , lon = " lon" , lat = " lat" , elevation = " z" )
43
- expect_equal( as.character( p $ x $ calls [[ 1 ]] $ args [[ 2 ]] ), geo )
53
+ check( geo , p )
44
54
45
55
})
46
56
@@ -50,12 +60,22 @@ test_that("pointcloud reads elevation from sf Z attribute", {
50
60
sf <- geojsonsf :: geojson_sf( geo )
51
61
# mapdeck:::resolve_data( sf, list(), "POINT" )
52
62
63
+ check <- function ( geo , res ) {
64
+ geo <- jsonify :: from_json( geo )
65
+ res <- jsonify :: from_json( res )
66
+ expect_equal(geo [[" lon" ]], res [[" lon" ]])
67
+ expect_equal(geo [[" lat" ]], res [[" lat" ]])
68
+ expect_equal(geo [[" fill_colour" ]], res [[" fill_colour" ]])
69
+ expect_equal(geo [[" stroke_colour" ]], res [[" stroke_colour" ]])
70
+ expect_equal(geo [[" stroke_width" ]], res [[" stroke_width" ]])
71
+ }
72
+
53
73
l <- list ()
54
74
l [[" palette" ]] <- " viridis"
55
75
l [[" legend" ]] <- FALSE
56
76
l [[" geometry" ]] <- " geometry"
57
77
geometry_column <- list ( geometry = c(" lon" ," lat" ," elevation" ) )
58
78
shape <- mapdeck ::: rcpp_point_sf_columnar( sf , l , geometry_column , digits = 6 , " pointcloud" )
59
- js <- ' {"elevation":[1.0,2.0],"fill_colour":[0.266667,0.003922,0.329412 ,1.0,0.266667,0.003922,0.329412,1 .0],"lat":[0.0,0.0],"lon":[0.0,0.0],"geometry":[0.0,0.0,1.0,0.0,0.0,2.0]}'
60
- expect_equal(as.character( shape $ data ), js )
79
+ js <- ' {"elevation":[1.0,2.0],"fill_colour":[68.0,1.0,84.0,255.0,68.0 ,1.0,84.0,255 .0],"lat":[0.0,0.0],"lon":[0.0,0.0],"geometry":[0.0,0.0,1.0,0.0,0.0,2.0]}'
80
+ check( js , shape $ data )
61
81
})
0 commit comments