jbkunst/highcharter

Bugs in highcharter maps

hm-yuan opened this issue · 6 comments

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) ------^

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.

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.

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.

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!

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