改变marker图标示例

此示例展示如何改变marker图标。

点击试试:

关键代码

	//定义两个样式图标
	var image = '//api.go2map.com/maps/images/v2.0/S20.png';
	//小旗子图标
	var image2 = '//api.go2map.com/maps/images/v2.0/flag.png'; 
    var marker = new sogou.maps.Marker({
        position: myLatlng, 
        map: map,
		icon:image,
        title:"北京"
    });

	//改变marker的图标成小旗子
	marker.setIcons([image2,image2]);
   

代码解析

Marker对象一般来说需要指定两个图标,

一个是正常前景显示的图标,

一个是鼠标悬停时显示的图标。

如果只指定一个,则自动认为悬停的图标跟前景显示的图标用同一个。

    var marker = new sogou.maps.Marker({
        position: myLatlng, 
        map: map,
		icon:image,
        title:"北京"
    });
	

等同于:

    var marker = new sogou.maps.Marker({
        position: myLatlng, 
        map: map,
		icons:[image,image],
        title:"北京"
    });
	

改变marker的图标成小旗子

因为要同时改变鼠标悬停时的图标,因此需要用setIcons同时设置前景和悬停图标。

    marker.setIcons([image2,image2]);
	

完整代码

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>搜狗地图 JavaScript API 示例: 改变marker图标示例</title>
<style type="text/css">
html {height: auto;}
body {height: auto;margin: 0;padding: 0;}
#map_canvas {width:1000px;height: 500px;position: absolute;}
@media print {#map_canvas {height: 950px;}}
</style>
<script type="text/javascript" src="//api.go2map.com/maps/js/api_v2.5.1.js"></script>
<script type="text/javascript">
  function initialize() {
    var myLatlng = new sogou.maps.LatLng(39.981320,116.320247);
    var myOptions = {
      zoom: 3,
      center: myLatlng,
      mapTypeId: sogou.maps.MapTypeId.ROADMAP
    }
    var map = new sogou.maps.Map(document.getElementById("map_canvas"), myOptions);
    
	//定义两个样式图标
	var image = '//api.go2map.com/maps/images/v2.0/S20.png';
	//小旗子图标
	var image2 = '//api.go2map.com/maps/images/v2.0/flag.png';
	//Marker对象一般来说需要指定两个图标,
	//一个是正常前景显示的图标,
	//一个是鼠标悬停时显示的图标。
	//如果只指定一个,则自动认为悬停的图标跟前景显示的图标用同一个。
    var marker = new sogou.maps.Marker({
        position: myLatlng, 
        map: map,
		icon:image,
        title:"北京"
    });
	//定义按钮调用的函数
    window.changeIcon=function(){
	  //改变marker的图标成小旗子
	  //因为要同时改变鼠标悬停时的图标,因此需要用setIcons同时设置前景和悬停图标。
	  marker.setIcons([image2,image2]);
  
    };
  }
</script>
</head>
<body onload="initialize()">
  <input type="button" onclick="changeIcon()" value="点我改变图标成小旗子" />
  <div id="map_canvas"></div>
</body>
</html>


运行代码