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