Как сделать видимыми длинные координаты широты после клика на карту и сделать видимыми до следующего клика? - PullRequest
1 голос
/ 07 апреля 2020

из это код для отображения видимой длинной координаты широты после наведения мыши на карту. И я переписываю на страницу HTML с новой версией OpenLayers.

Я хотел бы показывать эти длинные координаты широты после щелчка мышью в каком-либо месте на карте , а не после перемещения мыши на карте, как в код. И делает видимой последнюю координату, пока кто-нибудь не нажмет на следующее место, ничего. Я не хочу, чтобы координаты исчезали сразу, как в коде.

<!doctype html>
<html lang="en">
  <head>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.3.0/css/ol.css" type="text/css">
    <style>
      .map {
        height: 400px;
        width: 100%;
      }
    </style>
    <script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.3.0/build/ol.js"></script>
    <title>OpenLayers example</title>
  </head>
  <body>
  <div id="myposition"></div>
    <h2>My Map</h2>
    <div id="map" class="map"></div>
    <script type="text/javascript">
      var osm_default = new ol.layer.Tile({
        source: new ol.source.OSM()
      });

      var map = new ol.Map({
        layers: [osm_default],
        target: 'map',
        view: new ol.View({
          center: ol.proj.transform([-1.81185, 52.443141], 'EPSG:4326', 'EPSG:3857'),
          zoom: 6
        })
      });

      var mousePosition = new ol.control.MousePosition({
        coordinateFormat: ol.coordinate.createStringXY(2),
        projection: 'EPSG:4326',
        target: document.getElementById('myposition'),
        innerHTML: '&nbsp;'
      });

      map.addControl(mousePosition);
    </script>
  </body>
</html>

1 Ответ

0 голосов
/ 07 апреля 2020

Используйте singleclick или click событие на вашей карте:

map.on('singleclick', event => { 
  const coordinate = ol.proj.toLonLat(event.coordinate);
  const innerText = `Lon: ${coordinate[0].toFixed(4)}, Lat: ${coordinate[1].toFixed(4)}`;

  document.getElementById('myposition').innerText = innerText;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...