lipu ma li toki pona

by tbodt

HTML

<script src="https://unpkg.com/maplibre-gl/dist/maplibre-gl.js"></script>
<link href="https://unpkg.com/maplibre-gl/dist/maplibre-gl.css" rel="stylesheet" />

<form id="langform"><!--<p><input type="text" id="lang" placeholder="en"><input type="submit"></p>--></form>
<div id="map" style="width: 100%; height: 500px"></div>

JavaScript

const map = new maplibregl.Map({
  style: 'https://tiles.openfreemap.org/styles/liberty',
  center: [0, 30],
  zoom: 1,
  container: 'map',
})
function oKepekenToki(nimiToki) {
  console.log(map.getLayersOrder());
  for (let layer of map.getLayersOrder()) {
    console.log(layer);
    let label;
    try {
      label = map.getLayoutProperty(layer, 'text-field');
    } catch (e) {
      console.error(e);
      continue;
    }
    if (!label) continue;
    if (label[0] == 'to-string') continue;
    label = [
      'coalesce', 
      ['get', `name:${nimiToki}`],
      ['get', `int_name`],
      ['get', 'name'],
    ];
    map.setLayoutProperty(layer, 'text-field', label);
  }
}
langform.addEventListener('submit', (e) => {
  e.preventDefault();
  oKepekenToki(lang.value);
})
map.on('styledata', () => oKepekenToki('tok'));