Google maps 添加自定义谷歌地图标记/pin(颜色)

Google maps 添加自定义谷歌地图标记/pin(颜色),google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我已经做了相当不错的一些谷歌地图定制;但我想知道我可以在下面添加什么来简单地更改地图标记/pin/或图标。我真的想改变颜色;但我会创造一个形象,并这样做,如果我必须 下面是我的工作内容;干杯/ window.onload = function() { function initialize() { var stylez = [ { featureType: "all", stylers: [ { hue: "#c3c3

我已经做了相当不错的一些谷歌地图定制;但我想知道我可以在下面添加什么来简单地更改地图标记/pin/或图标。我真的想改变颜色;但我会创造一个形象,并这样做,如果我必须

下面是我的工作内容;干杯/

window.onload = function() {  

function initialize() {
    var stylez = [
      {
        featureType: "all",
        stylers: [
          { hue: "#c3c367" },
          { saturation: -75 }
        ]
      },
      {
        featureType: "poi",
        elementType: "label",
        stylers: [
          { visibility: "off" }
        ]
      }
    ];

    var latlng = new google.maps.LatLng(34.101958, -118.327925), // toggle per data

        mapOptions = {
            mapTypeControlOptions: {
                mapTypeIds: [google.maps.MapTypeId.ROADMAP, "Edited"] 
            },
            zoom: 14,
            center: latlng
        },

        map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions),

        styledMapType = new google.maps.StyledMapType(stylez, {name: "Edited"}),

        marker = new google.maps.Marker({
            position: latlng, 
            map: map, 
            animation: google.maps.Animation.DROP,
            title:"Hello World!"
        }),

        infowindow = new google.maps.InfoWindow({
            content: "<div><img width='50' height='50' src='assets/icos/homico.png'</div>"
        });

        map.mapTypes.set("Edited", styledMapType);
        map.setMapTypeId('Edited');

    function toggleBounce () {
        if (marker.getAnimation() != null) {
            marker.setAnimation(null);
        } else {
            marker.setAnimation(google.maps.Animation.BOUNCE);
        }
    }

    // Add click listener to toggle bounce
    google.maps.event.addListener(marker, 'click', function () {
        toggleBounce();
        infowindow.open(map, marker);
        setTimeout(toggleBounce, 1500);
    });
}

// Call initialize -- in prod, add this to window.onload or some other DOM ready alternative
initialize();

};
window.onload=function(){
函数初始化(){
var stylez=[
{
featureType:“全部”,
样式:[
{hue:#c3c367},
{饱和度:-75}
]
},
{
特征类型:“poi”,
elementType:“标签”,
样式:[
{可见性:“关闭”}
]
}
];
var latlng=new google.maps.latlng(34.101958,-118.327925),//每个数据切换
映射选项={
mapTypeControlOptions:{
MapTypeId:[google.maps.MapTypeId.ROADMAP,“已编辑”]
},
缩放:14,
中心:拉丁
},
map=new google.maps.map(document.getElementById(“map_canvas”)、mapOptions),
styledMapType=new google.maps.styledMapType(stylez,{name:“Edited”}),
marker=新的google.maps.marker({
位置:latlng,
地图:地图,
动画:google.maps.animation.DROP,
标题:“你好,世界!”
}),
infowindow=新建google.maps.infowindow({
内容:“”
});
map.mapTypes.set(“已编辑”,styledMapType);
map.setMapTypeId('Edited');
函数toggleBounce(){
if(marker.getAnimation()!=null){
marker.setAnimation(null);
}否则{
setAnimation(google.maps.Animation.BOUNCE);
}
}
//添加单击侦听器以切换反弹
google.maps.event.addListener(标记,'click',函数(){
切换弹跳();
信息窗口。打开(地图、标记);
设置超时(切换弹跳,1500);
});
}
//调用initialize——在prod中,将其添加到window.onload或其他一些DOM就绪的替代方案中
初始化();
};

您只需添加

"icon": "url"
你的标记声明。因此:

marker = new google.maps.Marker({
        position: latlng, 
        map: map, 
        animation: google.maps.Animation.DROP,
        title:"Hello World!"
    })
变成:

marker = new google.maps.Marker({
        position: latlng, 
        map: map,
        icon: yourIconUrl,
        animation: google.maps.Animation.DROP,
        title:"Hello World!"
    })

我已经回答了一个类似的问题,它能解决你的问题吗

您可以使用以下URL自定义自己的标记:

http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=D|00FF00|000000
chld
参数是要显示在标记中的字母。
在管道之后,第一个RGB代码是标记的颜色,第二个是标记的背景色。最后一个是可选的

因此,您可以像这样创建标记:

var myPin= new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=D|00FF00|000000");

你想怎么用就怎么用

您需要创建一个标记图像:

var image=new google.maps.MarkerImage(img_path+'marker.png',
//此标记宽48像素,高48像素。
新google.maps.Size(24,24),
//此图像的原点为0,0。
新google.maps.Point(0,0),
//这张图片的锚是12,24处旗杆的底部。
新谷歌地图点(12,24)
);
图像的尺寸和定位点会将自定义图标放置在正确的位置

并在创建标记时指定图标:

var marker=new google.maps.marker({
位置:latlng,
地图:地图,
图标:图像,
//(...)
});
中有一个属性控制pin的颜色

<Marker
  pinColor={isActive ? 'yellow' : 'red'}
  key={`${markerId}-${isActive ? 'active' : 'inactive'}`}
  // ... other props ...
/>