rechercher markers dans un fichier xml

Discussion dans 'YouTube, Google Images et Google Maps' créé par loupy, 17 Juin 2008.

  1. loupy

    loupy Nouveau WRInaute

    Inscrit:
    9 Juin 2008
    Messages:
    4
    J'aime reçus:
    0
    Bonjour,

    j'aimerais un petit peut d'aide .Voila j'aimerais récupérer des points situés dans un fichier xml pour les afficher sur une carte en fonction du rayon choisit . il existe déjà cette exemple ici http://code.google.com/apis/maps/articl ... earch.html mais avec une base sql. comment puis je utiliser cette exemple mais avec un fichier xml ?

    je sais pas si j'ai été assez clair dans ce que je veux faire.

    merci de votre aide
     
  2. loupy

    loupy Nouveau WRInaute

    Inscrit:
    9 Juin 2008
    Messages:
    4
    J'aime reçus:
    0
    personne pour m'aider?? je ne demande pas a ce qu'on face mon code à ma place mais juste si quelqu'un aurais pu m'éclairer sur ce point. savoir si c'est possible ou si c'est pas possible si on peux m'expliquer pourquoi je ne me connecte pas a ma base de donnée.
     
  3. loupy

    loupy Nouveau WRInaute

    Inscrit:
    9 Juin 2008
    Messages:
    4
    J'aime reçus:
    0
    voila ma page html

    function load() {
    if (GBrowserIsCompatible()) {
    geocoder = new GClientGeocoder();
    map = new GMap2(document.getElementById('map'));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(40, -100), 4);
    }
    }

    function searchLocations() {
    var address = document.getElementById('addressInput').value;
    geocoder.getLatLng(address, function(latlng) {
    if (!latlng) {
    alert(address + ' not found');
    } else {
    searchLocationsNear(latlng);
    }
    });
    }

    function searchLocationsNear(center) {

    var radius = document.getElementById('radiusSelect').value;
    var searchUrl = 'phpsqlsearch_genxml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;
    GDownloadUrl(searchUrl, function(data) {
    var xml = GXml.parse(data);

    var markers = xml.documentElement.getElementsByTagName('marker');
    alert ("erreur");
    map.clearOverlays();

    var sidebar = document.getElementById('sidebar');
    sidebar.innerHTML = '';
    if (markers.length == 0) {
    sidebar.innerHTML = 'No results found.';
    map.setCenter(new GLatLng(40, -100), 4);
    return;
    }

    var bounds = new GLatLngBounds();
    for (var i = 0; i < markers.length; i++) {
    var name = markers.getAttribute('name');
    var address = markers.getAttribute('address');
    var distance = parseFloat(markers.getAttribute('distance'));
    var point = new GLatLng(parseFloat(markers.getAttribute('lat')),
    parseFloat(markers.getAttribute('lng')));

    var marker = createMarker(point, name, address);
    map.addOverlay(marker);
    var sidebarEntry = createSidebarEntry(marker, name, address, distance);
    sidebar.appendChild(sidebarEntry);
    bounds.extend(point);
    }
    map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
    });
    }

    function createMarker(point, name, address) {
    var marker = new GMarker(point);
    var html = '<b>' + name + '</b> <br/>' + address;
    GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html);
    });
    return marker;
    }

    function createSidebarEntry(marker, name, address, distance) {
    var div = document.createElement('div');
    var html = '<b>' + name + '</b> (' + distance.toFixed(1) + ')<br/>' + address;
    div.innerHTML = html;
    div.style.cursor = 'pointer';
    div.style.marginBottom = '5px';
    GEvent.addDomListener(div, 'click', function() {
    GEvent.trigger(marker, 'click');
    });
    GEvent.addDomListener(div, 'mouseover', function() {
    div.style.backgroundColor = '#eee';
    });
    GEvent.addDomListener(div, 'mouseout', function() {
    div.style.backgroundColor = '#fff';
    });
    return div;
    }
    //]]>

    </script>
    </head>

    <body onload="load()" onunload="GUnload()">
    Address: <input type="text" id="addressInput"/>


    Radius: <select id="radiusSelect">

    <option value="25" selected>25</option>
    <option value="100">100</option>

    <option value="200">200</option>

    </select>

    <input type="button" onclick="searchLocations()" value="Search Locations"/>
    <br/>
    <br/>
    <div style="width:600px; font-family:Arial,
    sans-serif; font-size:11px; border:1px solid black">
    <table>
    <tbody>
    <tr id="cm_mapTR">

    <td width="200" valign="top"> <div id="sidebar" style="overflow: auto; height: 400px; font-size: 11px; color: #000"></div>

    </td>
    <td> <div id="map" style="overflow: hidden; width:400px; height:400px"></div> </td>


    voici ma page on j'effectue la connection avec ma base de donnée

    <?php
    require("phpsqlsearch_dbinfo.php");

    // Get parameters from URL
    $center_lat = $_GET["lat"];
    $center_lng = $_GET["lng"];
    $radius = $_GET["radius"];

    // Start XML file, create parent node
    $dom = new DOMDocument("1.0");
    $node = $dom->createElement("markers");
    $parnode = $dom->appendChild($node);

    // Opens a connection to a mySQL server
    $connection=mysql_connect (localhost, $username, $password);
    if (!$connection) {
    die("Not connected : " . mysql_error());
    }

    // Set the active mySQL database
    $db_selected = mysql_select_db($database, $connection);
    if (!$db_selected) {
    die ("Can\'t use db : " . mysql_error());
    }

    // Search the rows in the markers table
    $query = sprintf("SELECT address, name, lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
    mysql_real_escape_string($center_lat),
    mysql_real_escape_string($center_lng),
    mysql_real_escape_string($center_lat),
    mysql_real_escape_string($radius));
    $result = mysql_query($query);

    if (!$result) {
    die("Invalid query: " . mysql_error());
    }

    header("Content-type: text/xml");

    // Iterate through the rows, adding XML nodes for each
    while ($row = @mysql_fetch_assoc($result)){
    $node = $dom->createElement("marker");
    $newnode = $parnode->appendChild($node);
    $newnode->setAttribute("name", $row['name']);
    $newnode->setAttribute("address", $row['address']);
    $newnode->setAttribute("lat", $row['lat']);
    $newnode->setAttribute("lng", $row['lng']);
    $newnode->setAttribute("distance", $row['distance']);
    }

    echo $dom->saveXML();
    ?>

    + un autre fichier ou son stocké le nom utilisateur + mot de passe + bdd

    est ce que quelqu'un aurais une idée du problème . Je n'arrive pas a me connecter a ma base de donnée et a afficher sur la gauche les pointeur qui s'y trouve et sur la carte par la même ocasion

    merci de votre aide