Загрузите.svg для отображения с JavaScript в рельсах
Я пытаюсь использовать kartograph.js для отображения карты SVG, расположенной в / public в приложении rails, и не могу понять, как загрузить карту. Вот мой файл.js.coffee.erb:
$ ->
map = $K.map('#map')
# map.loadMap("#{Rails.root}/public/Blank_US_Map.svg", loaded) # attempt 1
map.loadMap("Blank_US_Map.svg", loaded) # attempt 2
loaded = () ->
map.addLayer('baseLayer')
Ошибка, выдаваемая в консоли: Uncaught TypeError: Невозможно вызвать метод getAttribute с неопределенным значением, хотя я считаю, что проблема заключается в том, что ни один файл не загружается.
1 ответ
Проблема возникает из библиотеки, которую вы используете, Картограф. Ему нужен файл SVG с абсолютной координатой, иначе вы, скорее всего, получите эту ошибку.
Вы можете подтвердить это, попробовав версию в формате чисто HTML-and-js, например:
<html>
<head>
<script src="jquery.min.js"></script>
<script src="raphael-min.js"></script>
<script src="kartograph.min.js"></script>
</head>
<body>
<div id="map"></div>
</body>
</html>
<script>
$(document).ready(function() {
var map = kartograph.map('#map');
function callback(mymap) {
// Stuff
}
map.loadMap('Blank_US_Map.svg', callback);
})
</script>
И посмотрите, если вы получите ту же ошибку.