根据数据库中的值更改标记颜色

Posted

技术标签:

【中文标题】根据数据库中的值更改标记颜色【英文标题】: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= []; 【参考方案1】:

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

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

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

【讨论】:

以上是关于根据数据库中的值更改标记颜色的主要内容,如果未能解决你的问题,请参考以下文章

AG-Grid:如何根据同一行中其他单元格中的值更改单元格的颜色

迭代表并根据跨度值更改td背景颜色

根据值更改散点图中特定点的形状

如何根据Angularjs中的背景颜色自动更改文本颜色? [复制]

python使用matplotlib可视化散点图(scatter plot)根据matplotlib中数据点的值更改数据点的颜色数值更大的点颜色更深

动态更改 NatTable 中的行颜色