Google maps api 3 谷歌地图标记的自定义图标

Google maps api 3 谷歌地图标记的自定义图标,google-maps-api-3,icons,google-maps-markers,Google Maps Api 3,Icons,Google Maps Markers,以下代码正在运行: function() { var Marker = new google.maps.Marker(); var MarkerOptions = {}; MarkerOptions.map = my_map; MarkerOptions.position = new google.maps.LatLng(0,0); MarkerOptions.animation = google.maps.Animation.DROP;

以下代码正在运行:

function()
    {
    var Marker = new google.maps.Marker();
    var MarkerOptions = {};
    MarkerOptions.map = my_map;
    MarkerOptions.position = new google.maps.LatLng(0,0);
    MarkerOptions.animation = google.maps.Animation.DROP;
    MarkerOptions.clickable = true;
    MarkerOptions.cursor = 'pointer';

    Marker.smallicon = [{
        anchor:null,
        origin:null,
        scaledSize:null,
        size:new google.maps.Size(20,32),
        url:'http://maps.gstatic.com/mapfiles/markers2/marker_sprite.png'
        }];

    Marker.setOptions(MarkerOptions);
    }
加上这一行后,控制台拍摄充满了错误

function()
    {
    var Marker = new google.maps.Marker();
    var MarkerOptions = {};
    MarkerOptions.map = way_map;
    MarkerOptions.position = new google.maps.LatLng(0,0);
    MarkerOptions.animation = google.maps.Animation.DROP;
    MarkerOptions.clickable = true;
    MarkerOptions.cursor = 'pointer';

    Marker.smallicon = [{
        anchor:null,
        origin:null,
        scaledSize:null,
        size:new google.maps.Size(20,32),
        url:'http://maps.gstatic.com/mapfiles/markers2/marker_sprite.png'
        }];

    Marker.setIcon(Marker.smallicon);
    Marker.setOptions(MarkerOptions);
    }
我不太了解它,它与
google.maps.MarkerImage
一起工作,但参考文献是编写的

表示标记图标或阴影图像的结构。这个班是 不赞成使用图标

因此我尝试使用图标,他们将其从构造函数更改为对象,因此更改了调用模型。

使用:

icon: {url:'http://maps.gstatic.com/mapfiles/markers2/marker_sprite.png'}
而不是

url:'http://maps.gstatic.com/mapfiles/markers2/marker_sprite.png'

Marker.smallicon
当前是一个数组,而不是
google.maps.Icon

使用以下任一选项:

Marker.setIcon(Marker.smallicon[0]);
或者让它成为一个对象:

Marker.smallicon = {
        size:new google.maps.Size(20,32),
        url:'http://maps.gstatic.com/mapfiles/markers2/marker_sprite.png'
        };

注意:您不需要设置
google.maps.Icon
的所有选项,只需设置您不想设置的选项。

我认为这对您很好

//改编自http://gmaps-samples-v3.googlecode.com/svn/trunk/overlayview/custommarker.html
功能自定义标记(latlng、map、imageSrc){
this.latlng=latlng;
this.imageSrc=imageSrc;
//设置板条和文字后,将覆盖添加到地图中。这将
//触发对窗格的调用,该窗格将依次调用draw。
这个.setMap(map);
}
CustomMarker.prototype=new google.maps.overlyview();
CustomMarker.prototype.draw=函数(){
//检查是否已创建div。
var div=this.div_2;;
如果(!div){
//创建覆盖文本DIV
div=this.div=document.createElement('div');
//创建代表CustomMarker的DIV
div.className=“customMarker”
var img=document.createElement(“img”);
img.src=this.imageSrc;
儿童分部(img);
google.maps.event.addDomListener(div,“单击”,函数(事件){
google.maps.event.trigger(我,“点击”);
});
//然后将覆盖添加到DOM中
var panes=this.getPanes();
窗格。覆盖图像。追加子对象(div);
}
//定位覆盖层
var point=this.getProjection().fromLatLngToDivPixel(this.latlng_u2;);
如果(点){
div.style.left=点x+‘px’;
div.style.top=点.y+‘px’;
}
};
CustomMarker.prototype.remove=函数(){
//检查覆盖是否在地图上并且需要删除。
如果(此.div){
this.div\u.parentNode.removeChild(this.div\u);
this.div=null;
}
};
CustomMarker.prototype.getPosition=函数(){
将此文件退还给我;
};
var map=new google.maps.map(document.getElementById(“map”){
缩放:17,
中心:新google.maps.LatLng(37.77088429547992,-122.413562387237),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
风险值数据=[{
档案图像:“http://www.gravatar.com/avatar/d735414fa8687e8874783702f6c96fa6?s=90&d=identicon&r=PG",
位置:[37.77085,-122.41356],
}, {
档案图像:“http://placekitten.com/90/90",
位置:[37.77220,-122.41555],
}]
对于(var i=0;i