1

作为一个初学者,我想得到最基本的例子来工作。所以我从这里下载了一张地图查看 了文件,发现第一个也是唯一的 id'g''admin1'

所以,我开始:

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="map.css" type="text/css" />
    <link rel="stylesheet" href="k.css" type="text/css" />
    <script type="text/javascript" src="/js/script.min.js"></script>
    <script type="text/javascript">
        $script(['/js/jquery.min.js'], 'jquery');
        $script(['/js/raphael-min.js', '/js/kartograph.js', '/js/chroma.min.js'], 'kartograph');
    </script>
</head>

<body>
    <script>
        $script.ready(['jquery','kartograph'], function() {
            $(function() {
                map = $K.map('#map');
                map.loadMap('DEU.svg', function(map) {
                    map.addLayer({ id: "admin1" });
                });
            });
        });
    </script>
    <div id="map"></div>        
</body>
</html>

基本上就是这样 - 它没有显示任何内容。我检查了文件位置,并检查了$script.ready函数运行后的所有内容。一切都好 - 但没有结果。我从 kartograph lib 文件夹(在 git 上)中获取了我包含的所有文件 - 并添加了k.css一个小的map.css

map.css看起来像这样:

#map {
width: 900px;
height: 900px;
}
4

2 回答 2

2

如果我在 2 年后复活这件事引起了 OP 的失望,我最诚挚的歉意。我只打算帮助其他可能像我一样在这个问题上目瞪口呆的人。

以下loadMap()功能对我有用:

map.loadMap('DEU.svg', function () {
    map.addLayer("admin1");
});

所以看起来你不需要说map.addLayer({ id: "admin1" })。您可以在图层名称后添加样式或事件处理程序,如下所示

map.loadMap('DEU.svg', function () {
    map.addLayer("admin1", {
        styles: {
            stroke: '#aaa',
            fill: '#f6f4f2'
        }
    });
});
于 2014-06-20T21:46:08.200 回答
0

当我试图重现您的问题时,我发现Raphaël可能未加载。如果您从kartograph.org复制文件,请尝试更改/js/raphael-min.js/js/raphael.min.js.

于 2012-08-17T21:24:09.843 回答