![](/img/trans.png)
[英]Insert a link with property into bindpopup polygon leaflet to open in new tab
[英]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.