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. P>
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. P>
3 Réponses :
pour OpenLayers 2:
ol.Map.getView().calculateExtent(map.getSize())
Merci! Cela fonctionne bien. Je l'utilise maintenant comme ceci: this.map.getextent (). Togeométrie (). Tostring () code> qui retourne quelque chose comme
Polygone ((- 8852235.9398912 -276000011337760000,113377000000.113377000000.113377000000.060109 11370000 , -8852235.9398912 11370000, -8852235.9398912 -2760000)) Code>
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 ()) code> de Cette réponse
Utilisez la fonction TransformExtent CODE> de l'exemple d'origine ici: OpenLayers .Org / fr / Derniers / Exemples / COUCHE-DEFETS.HTML
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 "<b>Eng_Chula</b>", 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>
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') }
Pour OL3, voir Stackoverflow.com/ Questions / 22206570 / ...