jbkunst / highcharter

R wrapper for highcharts
http://jkunst.com/highcharter/
Other
720 stars 148 forks source link

Bugs in highcharter maps #797

Open hm-yuan opened 1 year ago

hm-yuan commented 1 year ago

Thanks for this awesome package. However, when I ran the example in highcharter maps, and got error messages as follows. I wonder if there any solution to the bug.

library(highcharter)
hcmap("countries/nz/nz-all")

trying URL 'https://code.highcharts.com/mapdata/countries/nz/nz-all.js'
Content type 'text/javascript' length 36807 bytes (35 KB)
downloaded 35 KB

Error: lexical error: invalid char in json text.
                                       Highcharts.maps["countries/nz/n
                     (right here) ------^
dylancis commented 1 year ago

I got the same today, this is super new, I have been 0.9.4 version pretty much daily for very long time and never faced that issue before. Must be something on the underlying js lib.

https://code.highcharts.com/mapdata/countries/gb/gb-all.js

This is not A valid JSON.

sbal0038 commented 1 year ago

I have also been facing the same issue for more than 6 hours. The code was working well in the morning but was giving same lexical error from today evening for all kinds of maps provided by highcharts.

dylancis commented 1 year ago

I digged a bit more and found that the download_map_data() would need a fix: The JSON string parsed in:

mapdata <- jsonlite::fromJSON(mapdata, simplifyVector = FALSE)

Contains Highcharts.maps[\"countries/pt/pt-all\"]= at the beginning and I believe this is causing the corrupted JSON.

The line here: https://github.com/jbkunst/highcharter/blob/b53834c3b7e71e03741cd68b1c3595e75b0e79ef/R/highmaps.R#L188C20-L188C20 Needs to be changed with:

mapdata[1] <- gsub(".*]=", "", mapdata[1])

I tested and it works but a PR would be required.

dylancis commented 1 year ago

https://github.com/jbkunst/highcharter/pull/798

rmcarder commented 1 year ago

Also experiencing this which is causing a few scheduled reports to fail. Thank you @dylancis for the solution. Hoping pull request can be approved soon. Thanks @jbkunst for the amazing package!

dylancis commented 1 year ago

Highchart went back with the earlier .js version, the issue is gone and no code change is required.