首先,如果标签有误,请更正标签。不确定这属于哪里。
我想在运行传单的OpenStreetMap中添加标记。我将它们手动一个接一个地添加到我的html文件中,但是看起来很糟糕。我已经对如何使用for
循环添加它们有了一些想法。但是我现在的问题是我不想为我需要的每个标记创建一个新的数组。我看到有人在用桌子,并从中获取信息。不记得那是什么,在哪里。
我的标记如下所示:Name = L.marker([lat,lon]).addTo(overlay).bindPopop("Info for marker")
现在,可以在表格中写入表格了一个文本文件,第一行显示“名称,纬度,经度,覆盖,信息”,下一行提供属性,JS或任何其他模块获取我需要的信息?如果是这样,怎么办?如果没有,那怎么办?^^
答案 0 :(得分:1)
您可能要考虑将数据放入JavaScript对象列表(在本例中为JSON)。编写起来很容易,不需要解析。
const markers = [
{lat: 123, lon: 456, text: 'Info'},
{lat: 123, lon: 456, text: 'Info'},
{lat: 123, lon: 456, text: 'Info'},
{lat: 123, lon: 456, text: 'Info'},
{lat: 123, lon: 456, text: 'Info'},
];
markers.forEach(({lat, lon, text}) => L.marker([lat, lon]).addTo(overlay).bindPopop(text));
如果您真的想要文本格式,我们也可以这样做...
const markersText = `
123,456,Info
123,456,Info
123,456,Info
123,456,Info
`;
// Converts the above text format into a similar `markers` list-of-objects:
const markers = markersText
.split("\n") // split by newlines
.filter(Boolean) // remove empty lines
.map(line => line.trim().split(",")) // split each line by comma
.map(([lat, lon, text]) => ({ // map the arrays to objects
lat: parseFloat(lat),
lon: parseFloat(lon),
text,
}));