2016-12-01 93 views
0

我想要实现的是当我创建一个新的标记时,它应该有不同的颜色。这是我的范围。如何更改google map api可拖动标记的颜色?

$scope.addRoute = function() { 
    console.log('addRoute'); 
    var marker2 = new google.maps.Marker(
    { 
     position: {lat: 52.02, lng: 10.56}, 
     visible:true, 
     icon:'', 
     map: map, 
     draggable: true 
    });  

     directionsDisplay.setMap(map); 
}; 

回答

0

使用Symbols

在现有的$scope.addRoute功能代替icon:''使用generateIcon()

var marker = new google.maps.Marker({ 
     position : { 
      lat : 52.02, 
      lng : 10.56 
     }, 
     visible : true, 
     icon : generateIcon(), 
     map : map, 
     draggable : true 

    }); 

您需要在您控制器添加此功能。

function generateIcon() { 
    //http://map-icons.com/ for svg path 
    return { 

     path : 'M0-48c-9.8 0-17.7 7.8-17.7 17.4 0 15.5 17.7 30.6 17.7 30.6s17.7-15.4 17.7-30.6c0-9.6-7.9-17.4-17.7-17.4z', 
     scale : 0.5, 
     fillColor : '#' + (Math.random() * 0xFFFFFF << 0).toString(16), 
     fillOpacity : 100, 
    } 
} 
+0

100个不同的图标,我如何加入到我的令人兴奋范围 – Frrank

+0

@Frrank增加了一些信息。希望能帮助到你。 – Searching

+0

问题是@搜索这个范围是在控制器工作的人没有使用指令 – Frrank

0

您可以使用图标与所需的颜色:

var marker2 = new google.maps.Marker(
{ 
    position: {lat: 52.02, lng: 10.56}, 
    visible:true, 
    icon:'', 
    map: map, 
    draggable: true 
}); 

marker2.setIcon('https://maps.google.com/mapfiles/ms/icons/blue-dot.png'); 

var marker3 = new google.maps.Marker(
{ 
    position: {lat: 62.02, lng: 12.56}, 
    visible:true, 
    icon:'', 
    map: map, 
    draggable: true 
}); 

marker3.setIcon('https://maps.google.com/mapfiles/ms/icons/red-dot.png') 

或者你也可以从URL中直接更改颜色:

http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|FE7569 
+0

该解决方案将影响业绩的可以说你需要你就不会仅仅依靠增加他们这样的方式对2个标记,这是最好 – Frrank