loops - 传单:遍历自定义标记的数据
问题描述
我需要您在 Leaflet 中使用自定义标记的帮助。我需要与数据条目对应的自定义标记。这是一个如下所示的数据样本csv
:
结果 | display_na | 纬度 | 长 |
---|---|---|---|
视听 | 14, Amsterdamer Straße, Leopoldkiez, 婚礼, Mitte, 柏林, 13347, 德国 | 13.3574034 | 52.5517197 |
VK | Seestraße, 婚礼, Mitte, 柏林, 13351, 德国 | 52.541301 | 13.3341968 |
这是我现在的代码
// create 3 types of markers in 3 colors
var LeafIcon = L.Icon.extend({
options: {
iconSize: [38, 95],
iconAnchor: [22, 94],
popupAnchor: [-3, -76],
},
});
// Read markers data from data.csv
$.get("./data.csv", function (csvString) {
// Use PapaParse to convert string to array of objects
var data = Papa.parse(csvString, { header: true, dynamicTyping: true }).data;
var greenIcon = new LeafIcon({ iconUrl: "greeb.png" }),
yellowIcon = new LeafIcon({ iconUrl: "yellow.png" }),
redIcon = new LeafIcon({ iconUrl: "red.png" });
// For each row in data, create a marker and add it to the map
// For each row, columns `Latitude`, `Longitude`, and `Title` are required
for (var i in data) {
var row = data[i];
var marker = L.marker([row.lat, row.long], {
opacity: 1,
}).bindPopup(row.display_na);
L.marker([row.lat, row.long])
.addTo(map)
.bindPopup(row.display_na)
.openPopup();
}
});
它不工作。你能告诉我我的失败在哪里吗?我有 3 种类型的标记
- 绿色图标
- 黄色图标
- 红色图标
标记的颜色与行相对应result
。如果 中的结果值csv
是,AV
那么标记应该是greenIcon
。这就是想法。
比你的,期待你的建议!
解决方案
你很亲密。首先,您需要一个三元或 if 语句来检查 csv 的结果值,正如您在实例化标记时提到的那样。它接受一个对象,该对象具有一些选项,包括图标键。使用它,您可以定义与预定义不同的图标
for (var i in data) {
var row = data[i];
const marker = L.marker([row.lat, row.long], {
icon: row.result === "AV" ? greenIcon : blueIcon
})
.addTo(map)
.bindPopup(row.display_na)
.openPopup();
}
此外,您的 csv 应采用以下形式:
result,display_na,lat,long
AV,14 Amsterdamer Straße Leopoldkiez Wedding Mitte Berlin 13347 Deutschland,52.5517197,13.3574034
VK,Seestraße Wedding Mitte Berlin 13351 Deutschland,52.541301,13.3341968
仅在分隔每个列值时才需要使用逗号,否则将其视为不同的列值。
推荐阅读
- groovy - 为什么我在 Jenkins 管道 groovy 中看到这种行为
- mongodb - MongoDB 聚合用例
- amazon-emr - 当我使用 zeppelin 时,Amazon EMR 集群可能停止响应
- php - 为什么我的随机函数总是返回相同的数字?
- r - 安装 rstan/brms 后的浮点异常
- css - 在轮播中设置相同高度的图像
- javascript - 有没有查找平均年龄的功能?
- javascript - How do I query a Key-Value object in Java
- python-3.x - Python aiohttp Azure Function ClientConnector 错误(在本地工作)
- r - 如何使用 rmarkdown 将带有句子的小标题转换为 Microsoft Word 中的项目符号