使用数据库中的数据调用图像并将其用作传单中的标记图像

时间:2014-12-20 21:46:04

标签: javascript leaflet

美好的一天,我只想问一些关于标记的事情 1.我有一个由3个gif组成的文件夹,即火灾,绑架和杀人 我还有一个数据库,一个表格,里面有一个字段名称" icon_name"与其他字段3.这是我的图像文件夹位置C:\wamp\www\wew\legends

这是我的代码:

      function getInfo() { 
  $.getJSON("get_info.php", function (data) { 
    for (var i = 0; i < data.length; i++) { 
      var location = new L.LatLng(data[i].lat, data[i].lng); 
      var marker = new L.Marker(location,{iconUrl: 'C:\wamp\www\New System CS\SanBartolome\wew\legends' + data[i].icon_name + '.gif'}); 
       marker.bindPopup(
          data[i].name + "<br>" + 
          data[i].user_date + "<br>" + 
          data[i].user_time + "<br>" + 
          data[i].address + "<br>"
       ).addTo(map);
       marker.on('click', function(e) { // HERE YOU GO
          var ll = marker.getLatLng();
          document.querySelector('#userLat1').value = ll.lat;
          document.querySelector('#userLng1').value = ll.lng;
          alert('You have selected a Marker that will be deleted');
       });
     } 
  });
}

以下是get_info.php

<?php 
$db = new PDO('mysql:host=localhost;dbname=poi', 'root', ''); 
$sql = "SELECT name,user_date,user_time,address,lat,lng,icon_name FROM tblmarker"; 

$rs = $db->query($sql); 
if (!$rs) { 
    echo "An SQL error occured.\n"; 
    exit; 
} 

$rows = array(); 
while($r = $rs->fetch(PDO::FETCH_ASSOC)) { 
    $rows[] = $r; 
    $name[] = $r['name'];
    $user_date[] = $r['user_date'];
    $user_time[] = $r['user_time'];
    $address[] = $r['address'];
    $icon_name[] = $r['icon_name'];
} 
print json_encode($rows); 
$db = NULL; 
?> 

这就是它的作用:

1.致电我的get_info.php,其中包含select * from tablename的代码 2.var location:获取数据库中lat和long的值 3.创建标记(默认标记)
4.从数据库中获取数据并将其传输到传单bindpop中

,结果是使用数据库中的数据生成的地图中的默认标记。

这是我的问题:如何在表格字段中传递数据&#34; icon_name&#34;进入标记图像?我的意思是使用icon_name数据来调用文件夹中的图像并将其用作标记。

TYIA

1 个答案:

答案 0 :(得分:0)

试试这个。使用您自己的图标文件夹路径。

function getInfo() { 
  $.getJSON("get_info.php", function (data) { 
    for (var i = 0; i < data.length; i++) { 
      var location = new L.LatLng(data[i].lat, data[i].lng); 
      var marker = new L.Marker(location,{icon: '/path/to/icons/' + data[i].icon_name}); 
       marker.bindPopup(
          data[i].name + "<br>" + 
          data[i].user_date + "<br>" + 
          data[i].user_time + "<br>" + 
          data[i].address + "<br>"
       ).addTo(map);
       marker.on('click', function(e) { // HERE YOU GO
          var ll = marker.getLatLng();
          document.querySelector('#userLat1').value = ll.lat;
          document.querySelector('#userLng1').value = ll.lng;
          alert('You have selected a Marker that will be deleted');
       });
     } 
  });
}

如果+ '.gif'不包含文件扩展名,请icon_name之后添加icon_name