Javascript Mysql和JS中的自定义图标
我很难让JS通过SQL数据使用自定义图标 我已经让多边形使用SQL定义的颜色,但每次我尝试对Javascript Mysql和JS中的自定义图标,javascript,php,mysql,leaflet,Javascript,Php,Mysql,Leaflet,我很难让JS通过SQL数据使用自定义图标 我已经让多边形使用SQL定义的颜色,但每次我尝试对{icon:}使用相同的方法时,我都会使用 jQuery.Deferred异常:t.icon.createIcon不是函数类型错误:t.icon.createIcon不是函数 尝试将SQL数据设置为var也不起作用 var myicon=公司[i]['type'] 但是,在弹出窗口中调用公司[i]['type']可以正常工作并显示数据 在数据库中,该字段被称为type,并被格式化为字符串gasIcon或d
{icon:}
使用相同的方法时,我都会使用jQuery.Deferred异常:t.icon.createIcon不是函数类型错误:t.icon.createIcon不是函数
尝试将SQL数据设置为var也不起作用var myicon=公司[i]['type']
但是,在弹出窗口中调用公司[i]['type']
可以正常工作并显示数据
在数据库中,该字段被称为type
,并被格式化为字符串gasIcon
或defaIcon
等,以便在调用时与不同的图标匹配
这是标记代码
function addCompanies() {
var TypeIcon = L.Icon.extend({
options: {
shadowUrl: './images/type-shadow.png',
iconSize: [33, 44],
shadowSize: [36, 39],
iconAnchor: [17, 44],
shadowAnchor: [0, 50],
popupAnchor: [-3, -50]
}
});
var gasIcon = new TypeIcon({
iconUrl: './images/gasIcon.png'
}),
ammuIcon = new TypeIcon({
iconUrl: './images/ammuIcon.png'
}),
copsIcon = new TypeIcon({
iconUrl: './images/copsIcon.png'
}),
carsIcon = new TypeIcon({
iconUrl: './images/carsIcon.png'
}),
bankIcon = new TypeIcon({
iconUrl: './images/bankIcon.png'
}),
defaIcon = new TypeIcon({
iconUrl: './images/defaIcon.png'
}),
hospIcon = new TypeIcon({
iconUrl: './images/hospIcon.png'
});
for (var i = 0; i < companies.length; i++) {
var marker = L.marker([
companies[i]['latitude'],
companies[i]['longitude']
],{
icon: companies[i]['type']
}).addTo(map);
marker.bindPopup("<b>" +
companies[i]['company'] + "-" +
companies[i]['type'] +
"</b><br>Details:" +
companies[i]['details'] +
"<br />Telephone: " +
companies[i]['telephone']);
}
}
函数addCompanies(){
var TypeIcon=L.Icon.extend({
选项:{
shadowUrl:“./images/键入shadow.png”,
iconSize:[33,44],
阴影大小:[36,39],
iconAnchor:[17,44],
暗影锚:[0,50],
popupAnchor:[-3,-50]
}
});
var gasIcon=新类型图标({
iconUrl:“./images/gasIcon.png”
}),
ammuIcon=新类型图标({
iconUrl:“./images/ammuIcon.png”
}),
copsIcon=新类型图标({
iconUrl:“./images/copsIcon.png”
}),
carsIcon=新类型图标({
iconUrl:“./images/carsIcon.png”
}),
bankIcon=新类型图标({
iconUrl:“./images/bankIcon.png”
}),
defaIcon=新类型图标({
iconUrl:“./images/defaIcon.png”
}),
hospIcon=新类型图标({
iconUrl:“./images/hospIcon.png”
});
对于(var i=0;i详细信息:”+
公司[i][“详细信息”]+
“
电话:”+
公司[电话];
}
}
不明白为什么icon:companys[i]['type']
不起作用,而color:area[i]['color']
起作用
非常感谢,这是我第一次在这里提问,所以如果我没有留下足够的信息来帮助找到答案,我深表歉意,但如果需要,我会发布更多 正如评论中所暗示的,
companys[i]['type']
的值是一个字符串。它不会成为变量,在本例中,它不会成为对任何图标的引用。这就是为什么它在弹出文本中也起作用的原因,如果你在弹出文本中加入图标引用,你会得到一些读作[object]
,不是很有用的东西
这样做的结果是图标:“gasIcon”
,而不是图标:gasIcon
要解决此问题,您可以将图标放入如下对象:
var icons = {
gasIcon: new TypeIcon({iconUrl: './images/gasIcon.png'}),
ammuIcon: new TypeIcon({iconUrl: './images/ammuIcon.png'}),
copsIcon: new TypeIcon({iconUrl: './images/copsIcon.png'})
}
然后您可以获得如下所示的工作图标参考:
icon: icons[companies[i]['type']]
演示:正如评论中暗示的那样,
公司[i]['type']
的值是一个字符串。它不会成为变量,在本例中,它不会成为对任何图标的引用。这就是为什么它在弹出文本中也起作用的原因,如果你在弹出文本中加入图标引用,你会得到一些读作[object]
,不是很有用的东西
这样做的结果是图标:“gasIcon”
,而不是图标:gasIcon
要解决此问题,您可以将图标放入如下对象:
var icons = {
gasIcon: new TypeIcon({iconUrl: './images/gasIcon.png'}),
ammuIcon: new TypeIcon({iconUrl: './images/ammuIcon.png'}),
copsIcon: new TypeIcon({iconUrl: './images/copsIcon.png'})
}
然后您可以获得如下所示的工作图标参考:
icon: icons[companies[i]['type']]
演示:公司[i]['type']的价值是什么?是一个字符串,或者是
L.Icon
的实例?根据将其添加到数据库时选择的单选按钮,它可以是gasIcon-ammuIcon-copsIcon-carsIcon-bankion-hospIcon-defaIcon
所有这些都存储为字符串。companys[i]['type']
的值是多少?是一个字符串,或者是L.Icon
的一个实例?根据将其添加到数据库时选择的单选按钮,它可以是gasIcon-ammuIcon-copsIcon-carsIcon-bankIcon-hospIcon-defaIcon
,所有这些都存储为字符串。非常有魅力,也教会了我一些东西。谢谢你。工作很有魅力,也教会了我一些东西。非常感谢。