0

我正在尝试使用kartograph.js在 rails 应用程序中显示位于 /public 的 svg 地图,但无法弄清楚如何加载地图。这是我的 .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: Cannot call method 'getAttribute' of undefined,但我认为问题是没有加载文件。

4

1 回答 1

0

问题来自您正在使用的库,Kartograph。它需要一个具有绝对坐标的 SVG 文件,否则您很可能会收到此错误。

您可以通过尝试纯 HTML 和 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>

看看你是否得到同样的错误。

于 2013-11-11T19:16:01.147 回答