Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mysql和JS中的自定义图标_Javascript_Php_Mysql_Leaflet - Fatal编程技术网

Javascript Mysql和JS中的自定义图标

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

我很难让JS通过SQL数据使用自定义图标

我已经让多边形使用SQL定义的颜色,但每次我尝试对
{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
,所有这些都存储为字符串。非常有魅力,也教会了我一些东西。谢谢你。工作很有魅力,也教会了我一些东西。非常感谢。