2016-11-09 1 views
0

У меня есть очень маленький SpatialLinesDataFrame, который мне нужен для построения с Leaflet в R.Листовки Полилинии не отображаются

К сожалению, по какой-то причине я не могу этого сделать. This - это данные (это 12 КБ).

я пытаюсь сделать:

library(leaflet) 
load("mylines.Rdata") 
leaflet() %>% addTiles() %>% addPolylines(data=mylines) 

Однако полученная карта не имеет смысла, я могу видеть только линию в верхней части экрана, и это не то, что должно быть нанесено. Это результат: enter image description here

Вместо этого, если я:

library(mapview) 
mapview(mylines) 

Результат: enter image description here Он отлично работает, несмотря на mapview с помощью leaflet внизу. Что я делаю неправильно в синтаксисе Leaflet?

+0

Можете ли вы опубликовать скриншот о том, как выглядит «линия в верхней части экрана»? Что происходит, когда вы уменьшаете масштаб карты? – IvanSanchez

+0

@IvanSanchez Сделано, я добавил два снимка экрана, иллюстрирующие проблему. Спасибо, что посмотрели! – AF7

+0

Да, это похоже на артефакт, когда широты точек больше, чем ~ 85,5 градуса (так как проекции карт не являются тривиальными). Я не могу читать файлы '.rdata', поэтому я надеюсь, что люди, более осведомленные в R, могут хорошо посмотреть на ваш файл и проверить, имеет ли смысл широта ваших данных. – IvanSanchez

ответ

1

Я привык работать с leaflet обеспечения raster с, так что я обычно использую функцию addRasterImage, которая нуждается в данных проецируемые над leaflet «s проекции отображения (EPSG: 3857). Однако для полигонов и линий, как правильно указал @TimSalabim, это не так.

Таким образом, решение в этом случае состояло в том, чтобы просто не перепрограммировать данные на предварительную проекцию leaflet и предоставить ее в координатах ползунка (EPSG: 4326).

mapview работал, так как он делает это автоматически.