簡體   English   中英

在 Codeigniter 中使用 bindpopup Leaflet 將數據查詢分配給每個多邊形

[英]assign data query to each Polygon with bindpopup Leaflet in Codeigniter

我在 Codeigniter 中編寫了一些代碼,用 $.getJSON 將查詢結果分配給每個多邊形,但我發現了一些問題。 這是我的 $.getJSON 代碼

$.getJSON("<?php echo base_url(); ?>Request/showData", function(data) {
            var area_data = new Array(3);
            var total_data = new Array(3);
            for (var i = 0; i < data.length; i++) {
                area_data[i] = data[i].Area;
                total_data[i] = data[i].total;      
            }         
            layer.bindPopup(area_data + ':' + total_data);
        })

從這個js腳本,我得到了這種結果

美國廣播公司圖片

預期的結果是每個多邊形都顯示其字母和值,就像紅色一樣。 但現在我讓每個多邊形顯示查詢中的所有字母和值。

模型函數

public function map()
{
    $query = $this->db->query(
        "SELECT Area, sum(Value) as total from ( select Area,Value from try_1 union all select Area,Value from try_2 ) view_vall group by Area"
    );
    return $query->result_array();
}

控制器功能

public function showData()
    {
        $aa = $this->model_request->map();
        echo json_encode($aa);     
    }

提前致謝

原來我找到了答案..

它需要在循環之后添加條件 if 並添加變量以將值放入 bindpopup 中。

$.getJSON("<?php echo base_url(); ?>Request/showData", function(data) {
        var area_data = new Array(3);
        var total_data = new Array(3);
        for (var i = 0; i < data.length; i++) {
            area_data[i] = data[i].Area;
            total_data[i] = data[i].total;      
        }         
        var popup;
        if (feature.properties.Area == 'A') {
          popup = area_data[0] + ':' + total_data[0];
        } else if (feature.properties.Area == 'B') {
          popup = area_data[1] + ':' + total_data[1];
        } else {
          popup = area_data[2] + ':' + total_data[2];
        }

        layer.bindPopup(popup);
    })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM