Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Sun 21 October 2012 19:27

remy martin
Participant occasionnel
Date d'inscription: 5 Sep 2005
Messages: 27

[openlayers] [joomla]

bonjour,
je suis en train de faire un site pour une association. j'utilise joomla et je souhaite intégrer un volet carto.
j'utilise l'extension OGR2layers (version 0.8.8) de QGIS (1.8) pour obtenir la structure du code à intégrer sur mon site.

Cependant dans JOOMLA j'ai un message d'erreur au chargement de ma page (errorloadingGML). il ne trouve pas mon fichier geojson.
j'ai pourtant placé le fichier au même niveau que le index.php (code ci-dessous) de mon template.

je pense qu'il s'agit "seulement" de lui indiquer le chemin, mais je ne sais pas comment faire.
J'ai également copié le fichier GEOJSON dans différents dossiers du site, au cas où il le cherche ailleurs, mais sans succès.

c'est la ligne suivante qui pose pb : map.addLayer(poste_geocode);
ma couche ne s'affiche pas alors que je vois le fond OSM et que je peux naviguer.

merci pour le coup de main.
remy

<?php
/**
* @version        $Id: index.php $
* @package        Joomla.Site
* @copyright    Copyright (C) 2009 - 2011 SiteGround.com - All Rights Reserved.
* @license        GNU General Public License version 3 or later; see LICENSE.txt
   
*    This program is free software: you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation, either version 3 of the License, or
*  (at your option) any later version.
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*  You should have received a copy of the GNU General Public License
*  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
// No direct access.
defined('_JEXEC') or die;
JHTML::_('behavior.framework', true);
/* The following line gets the application object for things like displaying the site name */
$app = JFactory::getApplication();
$tplparams    = $app->getTemplate(true)->params;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
    <jdoc:include type="head" />
    <!-- The following line loads the template CSS file located in the template folder. -->
    <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
   
    <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/jshowoff.css" type="text/css" />
    <script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/javascript/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/javascript/jquery.jshowoff.js"></script>
   
    <!-- debut script openlayer -->
<script src="http://www.openlayers.org/api/2.11/OpenLayers.js"></script>
<script type="text/javascript">
function urlCheck(str) {
    var v = new RegExp();
    v.compile("^[A-Za-z]+hmm/[A-Za-z0-9-_]+\.[A-Za-z0-9-_%&\?\/.=]+$");
    if (!v.test(str)) {
        return "<i>"+str+"</i>";
    }
        return "<a href="+str+" target:'_blank'>open url</a>";
};

var map, selectsControls
function init(){
    var option = {
        projection: new OpenLayers.Projection("EPSG:900913"),
        displayProjection: new OpenLayers.Projection("EPSG:4326")
    };
    map = new OpenLayers.Map('map', option);
    olmapnik = new OpenLayers.Layer.OSM("OpenStreetMap Mapnik", "http://tile.openstreetmap.org/${z}/${x}/${y}.png");
    map.addLayer(olmapnik);
    map.setBaseLayer(olmapnik);
   
    var ls= new OpenLayers.Control.LayerSwitcher();
    map.addControl(ls);
    ls.maximizeControl();
    map.addControl(new OpenLayers.Control.Navigation());
   
    var poste_geocode_template = {
        pointRadius: 2.0,
        strokeColor: "#000000",
        strokeOpacity: 1,
        strokeWidth: 0.26,
        fillColor: "#ea3b42",
        fillOpacity: 1
    }
    var poste_geocode_style = new OpenLayers.Style(poste_geocode_template)
    //START QUERY poste_geocode
    function onPopupCloseposte_geocode(evt) {
        selectControl.unselect(selectedFeature);
    }
    function onFeatureSelectposte_geocode(feature){
        selectedFeature = feature;
        tableposte_geocode="<html><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><body><table><tr><td><b>Y:</b></td><td>"+urlCheck(feature.attributes.Y)+"</td></tr><tr><td><b>X:</b></td><td>"+urlCheck(feature.attributes.X)+"</td></tr><tr><td><b>complet:</b></td><td>"+urlCheck(feature.attributes.complet)+"</td></tr><tr><td><b>type:</b></td><td>"+urlCheck(feature.attributes.type)+"</td></tr><tr><td><b>annee:</b></td><td>"+urlCheck(feature.attributes.annee)+"</td></tr><tr><td><b>categorie:</b></td><td>"+urlCheck(feature.attributes.categorie)+"</td></tr><tr><td><b>poste:</b></td><td>"+urlCheck(feature.attributes.poste)+"</td></tr><tr><td><b>complement:</b></td><td>"+urlCheck(feature.attributes.complement)+"</td></tr><tr><td><b>adresse:</b></td><td>"+urlCheck(feature.attributes.adresse)+"</td></tr><tr><td><b>code_posta:</b></td><td>"+urlCheck(feature.attributes.code_posta)+"</td></tr><tr><td><b>ville:</b></td><td>"+urlCheck(feature.attributes.ville)+"</td></tr><tr><td><b>pays:</b></td><td>"+urlCheck(feature.attributes.pays)+"</td></tr><tr><td><b>ID:</b></td><td>"+urlCheck(feature.attributes.ID)+"</td></tr><tr><td><b>arrancy:</b></td><td>"+urlCheck(feature.attributes.arrancy)+"</td></tr></table></body></html>";
        popup = new OpenLayers.Popup.FramedCloud("chicken",
            feature.geometry.getBounds().getCenterLonLat(),
            new OpenLayers.Size(1000,500),
            tableposte_geocode,
            null,
            true,
            onPopupCloseposte_geocode
        );
        feature.popup = popup;
        map.addPopup(popup);
    }
    function onFeatureUnselectposte_geocode(feature) {
        map.removePopup(feature.popup);
        feature.popup.destroy();
        feature.popup = null;
    }
    //STOP QUERY poste_geocode
    var poste_geocode = new OpenLayers.Layer.GML("poste_geocode GeoJSON", "poste_geocode.GeoJSON", {format: OpenLayers.Format.GeoJSON, styleMap: poste_geocode_style});
   
    /**ancienne version
   
    var poste_geocode = new OpenLayers.Layer.Vector("Département du Rhône", {
            projection: new OpenLayers.Projection("EPSG:4326"),
            strategies: [new OpenLayers.Strategy.Fixed()],
            styleMap: poste_geocode_style,
            protocol: new OpenLayers.Protocol.HTTP({
            url: "poste_geocode.GeoJSON",
            format: new OpenLayers.Format.GeoJSON()
            })
        });
    */
   
   
    map.addLayer(poste_geocode);
    selectControl = new OpenLayers.Control.SelectFeature(
        [poste_geocode, ],
        {
            clickout: true, toggle: false,
            multiple: false, hover: false,
            toggleKey: "ctrlKey", // ctrl key removes from selection
            multipleKey: "shiftKey" // shift key adds to selection
        }
    );
    map.addControl(selectControl);
    selectControl.activate();
    poste_geocode.events.on({
        "featureselected": function(e) {
            onFeatureSelectposte_geocode(e.feature);
        },
        "featureunselected": function(e) {
            onFeatureUnselectposte_geocode(e.feature);
        }
    });
   
    extent = new OpenLayers.Bounds(4.157465,45.425545,5.502841,46.188021).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
    map.zoomToExtent(extent);
    map.maxExtent(extent);
};
</script>
        <!-- fin script openlayer -->
   
</head>
<body id="page_bg" onload="init()">

<div id="mainwrap">
<div id="header">
   
<div class="top-menu">
    <div id="sgmenu">
        <jdoc:include type="modules" name="menuload" />
    </div>
</div>
   
   
        <div id="search">
            <jdoc:include type="modules" name="position-0" />
        </div>
   
        <h1><a href="<?php echo $this->baseurl ?>"><?php echo $app->getCfg('sitename'); ?></a></h1>                   
       
    </div>
    <div id="wrapper">
       
        <div id="thumbFeatures">
                            <!--Slide 01-->
                            <div id="slide">
                                <img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/img/photo-1.jpg" style="width:940px; height:270px;" alt="image1" />
                            </div>
                            <!--Slide 02-->
                            <div id="slide">
                                <img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/img/photo-2.jpg" style="width:940px; height:270px;" alt="image2" />
                            </div>
                            <!--Slide 03-->
                            <div id="slide">
                                <img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/img/photo-3.jpg" style="width:940px; height:270px;" alt="image3" />
                            </div>
                            <!--Slide 04-->
                            <div id="slide">
                                <img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/images/img/photo-4.jpg" style="width:940px; height:270px;" alt="image4" />
                            </div>
                           
                </div><!--fin thumbFeatures-->
                            <script type="text/javascript">   
                            $(document).ready(function(){ $('#thumbFeatures').jshowoff({
                            cssClass: 'thumbFeatures',
                            effect: 'slideLeft'
                            }); });
                            </script>
       
        <div id="content_m">
            <?php if ($this->countModules( 'position-7 and position-4' )) : ?>
            <div class="maincol">                
            <?php elseif( $this->countModules( 'position-7' ) ) : ?>
            <div class="maincol_w_left">
            <?php elseif( $this->countModules( 'position-4' ) ) : ?>
            <div class="maincol_w_right">
            <?php else: ?>
            <div class="maincol_full">
            <?php endif; ?>
           
                <?php if( $this->countModules('position-7') ) : ?>
                    <div class="leftcol">
                        <jdoc:include type="modules" name="position-7" style="rounded"/>
                    </div>
                    <?php endif; ?>

                        <div class="cont">
                            <jdoc:include type="component" />
                        </div>
                   
                <?php if( $this->countModules('position-4') ) : ?>
                <div class="rightcol">
                    <jdoc:include type="modules" name="position-4" style="rounded"/>
                </div>
                <?php endif; ?>
                <div class="clr"></div>
            </div>
        </div>
        </div>
    </div>
    <div id="footergrad">
    <div id="footer">
        <p style="text-align:center;margin-top: 10px;"><?php $sg = ''; include "templates.php"; ?></p>
    </div>
    </div>
</body>
</html>

Hors ligne

 

Pied de page des forums

Powered by FluxBB