Вам необходимо следовать пошаговой инструкции здесь и создать table
вместо p
внутри popup
.Затем вы можете проверить консоль, проверив каждый элемент в приведенном вами примере и получить точную CSS.
onEachFeature предоставляет всю информацию, необходимую для получения метаданных json
.
const onEachFeature = (feature, layer) => {
// eslint-disable-line no-use-before-define
const popupContent = `
<table>
<tr>
<th>id:</th>
<td>${feature.properties.id}</td>
</tr>
<tr>
<th>shid:</th>
<td>${feature.properties.shid}</td>
</tr>
<tr>
<th>area:</th>
<td>${feature.properties.area}</td>
</tr>
<tr>
<th>pop-commute-drive_alone:</th>
<td>${feature.properties["pop-commute-drive_alone"]}</td>
</tr>
<tr>
<th>pop-commute-drive_carpool:</th>
<td>${feature.properties["pop-commute-drive_carpool"]}</td>
</tr>
<tr>
<th>pop-commute-public_transit:</th>
<td>${feature.properties["pop-commute-public_transit"]}</td>
</tr>
<tr>
<th>pop-commute-drive_alone:</th>
<td>${feature.properties["pop-commute-walk"]}</td>
</tr>
</table>`;
if (feature.properties && feature.properties.popupContent) {
popupContent += feature.properties.popupContent;
}
layer.bindPopup(popupContent);
}
const feature = L.geoJSON(json, {
onEachFeature: onEachFeature
}).addTo(map);
map.fitBounds(feature.getBounds());
Вы можете изменить функцию onEachFeature
, чтобы сделать ее более элегантной.Я просто хочу, чтобы вы поняли идею здесь.
В демоверсии 1016 * вы можете увидеть css, который я применил для получения аналогичного вида на примере