0

Kartograph.js を使用して svg マップをロードしています。しかし、ページの読み込み時に次のエラーが発生します。

Uncaught TypeError: Cannot read property 'getAttribute' of undefined
View.fromXML
Kartograph._mapLoaded
j
k.fireWith 
x
b

ここに私のコードがあります:

<html>
<head>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="raphael-min.js"></script>
    <script type="text/javascript" src="kartograph.js"></script>
    <script type="text/javascript">
        function loadMap(){
            var map = kartograph.map('#map', 600, 0);

            map.loadMap('World.svg')
        }
    </script>
</head>
 <body onLoad="loadMap()">

    <div id="map"></div>
</body>
</html>
4

2 に答える 2

1

svg ファイルでメタデータを定義する必要があります。例えば:

<metadata><views><view h="604.816027229" padding="0" w="1000"><proj id="laea-usa" lat0="45" lon0="-100"/><bbox h="321.76" w="532.88" x="746.23" y="918.78"/></view></views></metadata>
于 2014-06-13T20:53:55.360 に答える
1

kartograph.py で svg を作成した場合、次のように svg に追加されたレイヤーを追加する必要がある場合があります。

        function loadMap(){
            var map = kartograph.map('#map', 600, 0);

            map.loadMap('World.svg', function() {
                 map.addLayer('your_first_layer');
                 map.addLayer('your_second_layer');
            });
        }

追加するレイヤーの名前を見つけるには:

  • たとえば Firefox で svg ファイルをテキストとして開き、右クリック、ページ インスペクタを使用します。
  • 2 行目に次のように表示されます: svg > g#something > ...

レイヤーの1つの名前は、「g#」の後の「何か」です。コードでは、「g」要素の「id」です。

これがあなたに役立つことを願っています...

于 2014-09-11T08:34:45.170 に答える