javascript中基于变量的自定义标记
我试图根据一个特定的变量创建一个不同的标记。在我的地图上有三个坐标,带有和信息窗口。每个坐标都有不同的“报告类型”(捐赠、请求、灾难)。我试图根据报告类型自定义每个坐标,使其具有不同的标记,但我只能为所有坐标创建相同的标记javascript中基于变量的自定义标记,javascript,google-maps,markers,Javascript,Google Maps,Markers,我试图根据一个特定的变量创建一个不同的标记。在我的地图上有三个坐标,带有和信息窗口。每个坐标都有不同的“报告类型”(捐赠、请求、灾难)。我试图根据报告类型自定义每个坐标,使其具有不同的标记,但我只能为所有坐标创建相同的标记 var映射; var infowindow=new google.maps.infowindow(); 函数初始化(){ showAllReports(); } 函数showAllReports(){ $.ajax({ url:'HttpServlet', 键入:“POST”
var映射;
var infowindow=new google.maps.infowindow();
函数初始化(){
showAllReports();
}
函数showAllReports(){
$.ajax({
url:'HttpServlet',
键入:“POST”,
数据:{“tab_id”:“1”},
成功:功能(报告){
地图初始化(报告);
},
错误:函数(xhr、状态、错误){
警报(“发生AJAX错误:“+status+”\n错误:“+error”);
}
});
}
函数映射初始化(报告){
变量映射选项={
mapTypeId:google.maps.mapTypeId.ROADMAP,//设置地图类型
};
//在空div中渲染贴图
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
var bounds=new google.maps.LatLngBounds();
$。每个(报告、功能(即){
var long=数字(e[‘经度’);
var lat=数字(e['纬度]);
var latlng=新的google.maps.latlng(lat,long);
边界扩展(latlng);
//创建信息窗口内容
var contentStr='报告详细信息
';
contentStr+=''+'灾难'+':'+e['Disaster']+'';
contentStr+=''+'报告类型'+':'+e['Report\u Type']+
“”;
如果(e['report_type']='request'.\124; e['report_type']]=='捐赠'){
contentStr+=''+'资源类型'+':'+
e['resource_type']+'';
}
否则,如果(e['report_type']=='damage'){
contentStr+=''+'损害类型'+':'+e['Damage_Type']
+“”;
}
contentStr+=''+'报告者'+':'+
e['reporter_id']+'';
contentStr+=''+'时间戳'+':'+
e['time_stamp'].子串(0,19)+'';
if(e中的“消息”){
contentStr+=''+'消息'+':+e['Message']+'';
}
变量图标={
网址:'https://1adn3cp4l2-flywheel.netdna-ssl.com/wp-content/uploads/2013/10/Donation-plugins-for-WordPress1.jpg“,//url
scaledSize:new google.maps.Size(40,30),//缩放大小
原点:新的google.maps.Point(0,0),//原点
锚点:新的google.maps.Point(0,0)//锚点
};
var marker=new google.maps.marker({
位置:latlng,
地图:地图,
图标:图标,
customInfo:contentStr,
});
//将单击侦听器添加到标记
google.maps.event.addListener(标记'click',函数(){
//使用“customInfo”自定义信息窗口
setContent(标记['customInfo']);
打开(地图,标记);//打开信息窗口
});
});
map.fitBounds(边界);
}
//加载页面后,执行“初始化”功能。
google.maps.event.addDomListener(窗口“加载”,初始化);
根据报告类型
更改标记图像图标
下面是一个同样的例子
var icon_img = '';
if(report_type === 'Donation') {
icon_img = 'https://1adn3cp4l2-flywheel.netdna-ssl.com/wp-content/uploads/2013/10/Donation-plugins-for-WordPress1.jpg';
}else if(report_type === 'Disaster'){
icon_img = 'Disaster.jpg';
}else if(report_type === 'damage'){
icon_img = 'damage.jpg';
}
var icon = {
url: icon_img, // url
scaledSize: new google.maps.Size(40, 30), // scaled size
origin: new google.maps.Point(0, 0), // origin
anchor: new google.maps.Point(0, 0) // anchor
};
@ScaryWombat,这是Javascript。根据
报告类型更改标记图像图标
。
var icon_img = '';
if(report_type === 'Donation') {
icon_img = 'https://1adn3cp4l2-flywheel.netdna-ssl.com/wp-content/uploads/2013/10/Donation-plugins-for-WordPress1.jpg';
}else if(report_type === 'Disaster'){
icon_img = 'Disaster.jpg';
}else if(report_type === 'damage'){
icon_img = 'damage.jpg';
}
var icon = {
url: icon_img, // url
scaledSize: new google.maps.Size(40, 30), // scaled size
origin: new google.maps.Point(0, 0), // origin
anchor: new google.maps.Point(0, 0) // anchor
};