【问题标题】:Change marker color depending on value in database根据数据库中的值更改标记颜色
【发布时间】:2019-07-07 13:24:22
【问题描述】:

我有一张地图,我想将标记放入其中。根据数据库列的值,我想更改标记的颜色。我已经尝试过了,但它有错误。有人知道怎么做吗?

var green='http://maps.google.com/mapfiles/ms/icons/green-dot.png';
        var yellow='http://maps.google.com/mapfiles/ms/icons/yellow-dot.png';
        var orange='http://maps.google.com/mapfiles/ms/icons/orangedot.png';
        var red='http://maps.google.com/mapfiles/ms/icons/red-dot.png';
    for( i = 0; i < markers.length; i++ ) {
        var position = new google.maps.LatLng(markers[i][1], markers[i][2]);

            <?php if($result->num_rows > 0){
            while($row = $result->fetch_assoc()){
                $value=$row['RSRP'];
            }
        }

            if($value>-90){$icon="green";}
            else if($value<=-90 && $value>=-106){$icon="yellow";}
            else if($value<=-107 && $value>=-120){$icon="orange";}
            else if($value<-120){$icon="red";}
             ?>
        bounds.extend(position);
        marker = new google.maps.Marker({
            position: position,
            map: map,
            title: markers[i][0],
            icon:yellow
        });
}

【问题讨论】:

  • 您提到了错误,但没有告诉我们这些错误是什么。
  • 对于每个标记,它都会在控制台 &lt;b&gt;Notice&lt;/b&gt;: Undefined variable: value in &lt;b&gt;C:\xampp\htdocs\site.php&lt;/b&gt; on line &lt;b&gt;78&lt;/b&gt;&lt;br /&gt; &lt;br /&gt; 上向我显示此内容@
  • 看起来您正在填充 $value 数组而没有先定义它。在你开始你的 while 语句之前,甚至你的 if($result->num_rows >0) 你应该声明 $value 变量,例如$value= [];

标签: php database google-maps google-maps-markers marker


【解决方案1】:

您好,请改用 foreach 循环并检查该值是否设置为示例:

foreach ($sqlResult as $key => $value) {
        if (isset($value)) {
        if($value["color"] > 90){
        $icon ="green";  
        }
    }
}

其中“颜色”是您要获取值的列的名称 希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 2021-02-27
    • 2023-03-07
    • 2017-07-10
    • 1970-01-01
    相关资源
    最近更新 更多