Получите (несколько) пользовательских значков в листовке от rCharts

Я хочу создать карту с помощью rCharts/Leaflet, но не могу понять, как создавать собственные значки и использовать их.

Вот решение, но у меня оно не работает: https://github.com/ramnathv/rCharts/issues/301

L1$geoJson(toGeoJSON(data_), 
  pointToLayer =  "#! function(feature, latlng){
    return L.marker(latlng, {icon: L.Icon.extend({
      options: {
        shadowUrl: 'leaf-shadow.png',
        iconSize:     [38, 95],
        shadowSize:   [50, 64],
        iconAnchor:   [22, 94],
        shadowAnchor: [4, 62],
        popupAnchor:  [-3, -76]
      }})
    })
  } !#"
)

Но у меня не получается. И iconUrl здесь не определен, так что он даже не меняется, верно? Так что я был бы рад иметь воспроизводимый пример.

PS: В лучшем случае будет несколько значков. Кто-нибудь знает об этом?

/редактировать:

Хорошо, я понял это. Мне пришлось поместить файлы *.png в ту же папку, где находился файл index.html, а не в папку проекта. Есть ли способ включить их, чтобы я мог использовать для этого rStudio Viewer?


person pfuhlert    schedule 04.06.2015    source источник


Ответы (1)


Вы можете создавать новые значки, такие как

var myNewIcon = L.icon({
    iconUrl: 'my-icon.png',
    iconRetinaUrl: '[email protected]',
    iconSize: [38, 95],
    iconAnchor: [22, 94],
    popupAnchor: [-3, -76],
    shadowUrl: 'my-icon-shadow.png',
    shadowRetinaUrl: '[email protected]',
    shadowSize: [68, 95],
    shadowAnchor: [22, 94]
});

затем ссылайтесь на него как return L.marker(latlng, {icon: myNewIcon}). Я не вижу, чтобы вы создавали новый экземпляр значка в своем опубликованном примере кода, вы просто расширяете базовый класс. Я не думаю, что вы хотите расширить класс в этом случае.

person snkashis    schedule 04.06.2015
comment
Вы поняли, что мне нужно реализовать это в R? Я не думаю, что смогу создать объект значка отдельно. - person pfuhlert; 05.06.2015