2010-10-07 75 views
1

我正在尝试更改我正在处理的示例地图应用程序中KML叠加层的KML地标图标。在Google Maps API V3中单击更改KML地标图标

这里的示例代码 -

function seekml() { 

var myLatlng = new google.maps.LatLng(40.65, -73.95); 
var myOptions = { 
    zoom: 14, 
    mapTypeControl: true, 
    center: myLatlng, 
    mapTypeControlOptions: { 
     style: google.maps.MapTypeControlStyle.DROPDOWN_MENU, 
    position: google.maps.ControlPosition.TOP_RIGHT 
    }, 
    navigationControl: true, 
    navigationControlOptions: { 
     style: google.maps.NavigationControlStyle.SMALL 
    }, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
url_end = "?nocache=" + (new Date()).valueOf(); //For No KML Caching 
myKML = "http://kmlscribe.googlepages.com/SamplesInMaps.kml" + url_end 

gMap = new google.maps.Map(document.getElementById("map"), myOptions); 
var ctaLayer = new google.maps.KmlLayer(myKML,{suppressInfoWindows: true}); 
ctaLayer.setMap(gMap); 

google.maps.event.addListener(ctaLayer, 'click', function(event) {    
    this.setIcon(gYellowIcon); 
    }); 
} 

gYellowIcon已经在我的代码之前被定义 -

var gYellowIcon = new google.maps.MarkerImage(
    "image url", 
    new google.maps.Size(31, 31), 
    new google.maps.Point(0, 0), 
    new google.maps.Point(6, 20)); 

我想改变KML覆盖地标,当用户点击任何地标显示在KML叠加层上。上面的代码不起作用。

+0

我正要问相同的... – Francesco 2010-11-17 21:51:08

+0

嗨,你最终找到了解决这个问题的解决方案?谢谢 – 2011-02-03 16:41:50

回答

2

我目前正在研究完全相同的事情,在我的情况下,我可以直接编辑KML文件。如果你有机会获得它,并可以对其进行编辑,这是我做的:

1)右键下<document>标签,贴这样的事情:

<Style id="desired_id"> 
    <IconStyle> 
    <Icon> 
     <href>http://www.yourwebsite.com/your_preferred_icon.png</href> 
     <scale>1.0</scale> 
    </Icon>  
    </IconStyle> 
</Style> 

scale参数没有在谷歌地图的支持时刻。在这里,您可以查看KML的所有受支持的元素在谷歌地图:

http://code.google.com/intl/en-EN/apis/kml/documentation/kmlelementsinmaps.html

在这里,你已经得到了有关KML和GMaps之间的兼容性的一些信息:

http://code.google.com/intl/en-EN/apis/kml/documentation/mapsSupport.html

2)一旦你已经定义了你的风格,你可以在每个地标项上加上以下内容来参考它:

<styleUrl>#desired_id</styleUrl> 

现在,您的所有地标都应显示显示您的自定义图标。

希望它有帮助。

编辑:对不起,我没有看到点击部分。这不是你当时需要的。我会离开它以防别人帮助别人。对不起。

+2

谢谢,这很有帮助。 – 2011-07-27 17:00:03

相关问题