Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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 使用.php MySQL向地图添加自定义.png标记_Javascript_Php_Mysql_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 使用.php MySQL向地图添加自定义.png标记

Javascript 使用.php MySQL向地图添加自定义.png标记,javascript,php,mysql,google-maps,google-maps-api-3,Javascript,Php,Mysql,Google Maps,Google Maps Api 3,我正在使用以下代码向地图添加标记,它工作正常,但我想为标记图标向数据库添加另一个字段,以便为数据库中的每个条目显示自定义标记图标 有人知道我需要“回显”什么,以便在查询数据库时为每个项目创建一个自定义的.png标记吗 <?php $query = mysqli_query($conn, "SELECT * FROM table")or die(mysql_error()); while($row = mysqli_fetch_array($query)) {

我正在使用以下代码向地图添加标记,它工作正常,但我想为标记图标向数据库添加另一个字段,以便为数据库中的每个条目显示自定义标记图标

有人知道我需要“回显”什么,以便在查询数据库时为每个项目创建一个自定义的.png标记吗

<?php

     $query = mysqli_query($conn, "SELECT * FROM table")or die(mysql_error());

     while($row = mysqli_fetch_array($query)) {
        $logo = $row['logo'];
        $company = $row['company'];
        $lat = $row['lat'];
        $lon = $row['lon'];
        $desc = $row['desc'];

        echo("addMarker($lat, $lon, '<b>$logo</b><b>$company<br />$desc');\n");
     }
?>

您需要图像的完整地址。例如,如果您的网站存储在www.example.com上的http协议中,您在图像/标记文件夹中有这些标记,并且您将文件名存储在数据库中,您可以使用以下方法:

(在PHP上设置文本时):

$icon=''$行['icon'];//读取名为icon的数据库行,其文件名为ex marker1.png 在这之后,我理解了您对google.maps.Marker()的addMarker函数调用,在这些函数上,设置一个名为icon的新参数,并在其上设置创建的$icon字符串

记住:如果你在http上加载你的页面,你可以在http或https上加载标记。但是,如果加载https,则可以从http资源获取标记图像。

将另一个名为“marker”的字段添加到表中(如果未明确指定该行的自定义标记,则默认值可能为“marker.png”)。然后,将自定义标记的名称包含在向客户端回显的JS中:

`
$query=mysqli\u query($conn,“SELECT*FROM table”)或die(mysql\u error());
while($row=mysqli\u fetch\u数组($query)){
$logo=$row['logo'];
$company=$row['company'];
$lat=$row['lat'];
$lon=$row['lon'];
$marker=$row['marker'];
$desc=$row['desc'];
echo(“addMarker($lat,$lon,$marker,$logo$company
$desc”);\n); }
?>`


然后在addMarker()JS函数中,用户$marker在显示图像的地图上写出一个图像标记。

我的问题不是图像位置,我只是不知道如何回显图标。在这行代码的某个地方,我需要添加图标信息,但没有任何效果:echo(“addMarker($lat,$lon,$logo$company
$desc”);\n);此函数调用javascript文件上定义的函数。如果你的问题是把它发送到谷歌地图,把$icon放在lon和“这个$icon需要“img scr”之间吗?”?它显示了以下内容:addMarker(27.2441,-80.8268,'regionsbank
');不,您只需要传递我在响应中详述的数据。在addMarker()函数中,不要忘记将图像的URL路径前置到图像的名称。例如,如果您试图显示“Pale.PNG”,并且该映像存在,则需要将您传递到AddMARKER()中的标记名称,您可能需要考虑在某一点重构代码,以便客户端脚本调用服务器以获得标记列表,然后服务器以JSON的形式返回列表,您可以遍历该列表以在地图上显示标记。由于大多数web应用程序都符合MVC设计范式,从服务器端脚本中写出对JS函数的调用已成为不可取的做法。既然$marker随每条记录而变化,那么如何使用新的标记再次调用该函数?我的函数看起来像:
function addMarker(lat,lng,info){var pt=new google.maps.LatLng(lat,lng);bounds.extend(pt);var marker=new google.maps.marker({position:pt,icon:icon,map:map});
Google在这里解释了如何自定义标记图标:
 $query = mysqli_query($conn, "SELECT * FROM table")or die(mysql_error());

 while($row = mysqli_fetch_array($query)) {
    $logo = $row['logo'];
    $company = $row['company'];
    $lat = $row['lat'];
    $lon = $row['lon'];
    $marker = $row['marker'];
    $desc = $row['desc'];

    echo("addMarker($lat, $lon, $marker, '<b>$logo</b><b>$company<br />$desc');\n");
 }