Google maps api - 将一个kml图层添加到地图中

时间:2011-11-21 22:55:11

标签: google-maps-api-3

我一直在玩谷歌地图api通过javascript(我也是javascript的新手)。 我已经尝试过按照api示例向地图添加信息窗口和标记。

我想要做的是将KML文件叠加到爱尔兰地图上 - 我在融合表中搜索了KML文件,其中包含了爱尔兰各县边界的信息。

kml文件来自这里的融合表: http://www.google.com/fusiontables/DataSource?dsrcid=935280&search=ireland+counties&cd=0

我将它导出到kml文件并将其上传到公共网站(请参阅javascript - 我无法发布超过2个链接)

我正在尝试在下面的链接中加载kml文件 - 我选择的地图会出现,但KML叠加层却没有。 http://songsaboutsuperheroes.com/index.html

我尝试使用指向融合表ID的链接,但没有运气。 我也试过使用KML网络链接并且没有运气。

所以我正在尝试直接加载KML文件,就像我在教程中看到的那样。 任何人都可以指出我正确的方向 - 我不确定我做错了什么 - 提前谢谢!

这是我正在使用的Javascript:

  function initialize() {

    var latlng = new google.maps.LatLng(53.36942,-6.378288);

    var myOptions = {
                        zoom: 7 ,
                        center: latlng,
                        mapTypeId: google.maps.MapTypeId.ROADMAP
                    };


    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);                       


  var myLayer = new google.maps.KmlLayer(
       'http://songsaboutsuperheroes.com/Ireland_Counties.kml');
  myLayer.setMap(map);
 }

2 个答案:

答案 0 :(得分:1)

这很有效 - 我访问了直接保存kml数据的融合表:

var latlng = new google.maps.LatLng(53.36942,-6.378288);

var myOptions = {
        zoom: 7,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
        };


var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);                       
layer = new google.maps.FusionTablesLayer(935280, {
                                         suppressInfoWindows: true
                                    });

layer.setQuery("select geometry,name_1 from 935280");
layer.setMap(map);

答案 1 :(得分:0)

    var kmlUrl = 'http://www.yoursite.com/YOUR_KML_FILE.kml';

 var KML_single = new google.maps.KmlLayer(kmlUrl, {color:"#4385F1" } );


 KML_single.setMap(map);


    EXML_single = new GeoXml("EXML_single", map, kmlUrl, {
                            sidebarid:"sidebar",
                            iwwidth:280

                        }); 
    EXML_single.parse('SOME LOADING TEXT HERE');