12
votes

Comment obtenir la fenêtre actuelle de la carte des OpenLayers en tant que géométrie, boîte à bornir ou wkt?

J'essaie de trouver des indices où je devrais rechercher ce sujet, mais je n'ai rien trouvé - et j'ai passé de nombreuses heures à ce sujet.

J'essaie également d'obtenir les coordonnées actuelles de la fenêtre ViewPlport actuelle de la carte OpenLayers pour ajouter uniquement ces vecteurs situés dans la zone de sélection actuelle de la fenêtre actuelle.


3 Réponses :


24
votes

pour OpenLayers 2:

ol.Map.getView().calculateExtent(map.getSize())


5 commentaires

Merci! Cela fonctionne bien. Je l'utilise maintenant comme ceci: this.map.getextent (). Togeométrie (). Tostring () qui retourne quelque chose comme Polygone ((- 8852235.9398912 -276000011337760000,113377000000.113377000000.113377000000.060109 11370000 , -8852235.9398912 11370000, -8852235.9398912 -2760000))


Je suis un peu inconnue avec SIG, mais les chiffres -8852235 -2760000, ... ne semblent pas que des valeurs lates / longues? Je reçois des résultats similaires quand je reçois l'étendue de la carte. Les valeurs lat / longues sont-elles dans les gammes de -90/90 et -180/180?


Cette réponse m'a aidé à résoudre ce problème: Stackoverflow.com/a/2607145/1359765


Merci, je pense qu'il y a une légère typo pour OpenLayers 3, cela fonctionne pour moi map.geview (). Calculyllement (map.getsize ()) de Cette réponse


Utilisez la fonction TransformExtent de l'exemple d'origine ici: OpenLayers .Org / fr / Derniers / Exemples / COUCHE-DEFETS.HTML



5
votes

pour OpenLayers 5.3.

<head>
  <link rel="stylesheet" href="https://openlayers.org/en/v5.3.0/css/ol.css" type="text/css">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">

  <script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script>

  <script src="https://code.jquery.com/jquery-2.2.3.min.js"></script>
</head>

<body>
  <H3>Openlayers v5.3.0 Web Map with Geojson Data</H3>
  <div id="map1" class="map"></div>
  <i>:</i>
  <p id="p1">Find &quot;<b>Eng_Chula</b>&quot;, then click it.</p>

  <div style="display: none;">
    <!-- Clickable label for Eng-Chula -->
    <a class="overlay" id="engchula1" target="_blank" href="http://eng.chula.ac.th">Eng_Chula</a>
    <div id="marker1" title="Marker1"></div>
  </div>

</body>


0 commentaires

0
votes

Basé sur les réponses ici, mais si vous souhaitez que vos résultats soient en coordonnées de latitude de longitude.

function getBounds() {
  const extent = olMap.getView().calculateExtent(olMap.getSize())
  return transformExtent(extent, 'EPSG:3857', 'EPSG:4326')
}


0 commentaires