Suite

Est-il possible de créer une fenêtre contextuelle dans Openlayers2.12 sans y définir de coordonnées ?

Est-il possible de créer une fenêtre contextuelle dans Openlayers2.12 sans y définir de coordonnées ?


J'utilise Openlayers 2.12 et crée une fenêtre contextuelle comme celle-ci :

popup = new OpenLayers.Popup.FramedCloud("poulet", new OpenLayers.LonLat(latlotArr[0],latlotArr[1]).transform( fromProjection, toProjection), new OpenLayers.Size(300, 300),htmlImg,null, vrai);

J'obtiens les coordonnées de certaines images. Mais certaines images n'ont pas de coordonnées. Dans ce cas, je veux juste afficher la fenêtre contextuelle sans emplacement spécifique.

Comment puis je faire ça? J'ai essayé ceci :

popup = new OpenLayers.Popup.FramedCloud("poulet", new OpenLayers.LonLat(null,null), new OpenLayers.Size(300, 300), htmlImg, null, true);

Mais ofcource cela n'a pas fonctionné. J'obtiens une erreur : valeur invalide pour la variable lat.


Non. Si vous regardez le code source d'OpenLayers.Popup, à partir duquel tous les autres types de popup sont dérivés, vous verrez à la ligne 333 que la position du div est déterminée en convertissant le passé en lat/lon en un emplacement de pixel. Si vous n'avez pas de lat/long pour une image, vous pouvez toujours passer au centre de votre carte, ou en haut à gauche, peu importe, à sa place. L'autre option serait de remplacer la fonction de dessin, en définissant le px sur un emplacement de pixel de votre choix, plutôt que de le dériver d'une position géographique.


Voir la vidéo: OpenLayers Add Vector Layer to Web Map