Note that there are some explanatory texts on larger screens.

plurals
  1. POGoogle Maps V3: Updating Markers
    primarykey
    data
    text
    <p>I have some issues with Google maps api v3. I managed to create a map where new markers are displayed when the user drag the map. However, it do not delete the past markers. I have read many tutorials and thread (especially this one: <a href="https://stackoverflow.com/questions/9626134/google-maps-v3-updating-markers-periodically">Google Maps V3: Updating Markers Periodically</a>) without success.</p> <p>Here is my main page:</p> <pre><code>&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta name="viewport" content="initial-scale=1.0, user-scalable=no" /&gt; &lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt; &lt;title&gt;Développez avec les API Google Maps&lt;/title&gt; &lt;style type="text/css"&gt; html { height: 100%; } body { height: 100%; margin: 0px; padding: 0px; } #map_canvas { height: 100%; } &lt;/style&gt; &lt;script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; function createXmlHttpRequest() { try { if (typeof ActiveXObject != 'undefined') { return new ActiveXObject('Microsoft.XMLHTTP'); } else if (window["XMLHttpRequest"]) { return new XMLHttpRequest(); } } catch (e) { changeStatus(e); } return null; }; function downloadUrl(url, callback) { var status = -1; var request = createXmlHttpRequest(); if (!request) { return false; } request.onreadystatechange = function() { if (request.readyState == 4) { try { status = request.status; } catch (e) { } if (status == 200) { callback(request.responseText, request.status); request.onreadystatechange = function() {}; } } } request.open('GET', url, true); try { request.send(null); } catch (e) { changeStatus(e); } }; function xmlParse(str) { if (typeof ActiveXObject != 'undefined' &amp;&amp; typeof GetObject != 'undefined') { var doc = new ActiveXObject('Microsoft.XMLDOM'); doc.loadXML(str); return doc; } if (typeof DOMParser != 'undefined') { return (new DOMParser()).parseFromString(str, 'text/xml'); } return createElement('div', null); } var map; function initialize() { var latlng = new google.maps.LatLng(46.7, 2.5); var myOptions = { zoom: 6, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById('map_canvas'), myOptions); downloadUrl("getPoi2.php", function(data) { var xml = xmlParse(data); var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i &lt; markers.length; i++) { createMarker(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")), markers[i].getAttribute('titre')); } }); /* Ici, on ajoute l'écouteur d'événement suite à un glisser / déposer */ google.maps.event.addListener(map, 'dragend', function() { var bds = map.getBounds(); var South_Lat = bds.getSouthWest().lat(); var South_Lng = bds.getSouthWest().lng(); var North_Lat = bds.getNorthEast().lat(); var North_Lng = bds.getNorthEast().lng(); downloadUrl("getPoi.php?maxlat="+North_Lat+"&amp;minlat="+South_Lat+"&amp;minlong="+South_Lng+"&amp;maxlong="+North_Lng, function(data) { var xml = xmlParse(data); var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i &lt; markers.length; i++) { createMarker(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")), markers[i].getAttribute('titre')); } }); }); } function createMarker(lat, lng, titre){ var latlng = new google.maps.LatLng(lat, lng); var marker = new google.maps.Marker({ position: latlng, map: map, title: titre }); } &lt;/script&gt; &lt;/head&gt; &lt;body onload="initialize()"&gt; &lt;div id="map_canvas" style="width: 100%; height: 100%;"&gt;&lt;/div&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>And there is my getPoin.php:</p> <pre><code>&lt;?php $user = "root"; $password = ""; $host = "localhost"; $bdd = "citiesinvaders"; mysql_connect($host,$user,$password); mysql_select_db($bdd) or die("erreur de connexion à la base de données"); $sql = "SELECT * FROM location order by city desc limit 1"; $res = mysql_query($sql) or die(mysql_error()); $dom = new DomDocument('1.0', 'utf-8'); $node = $dom-&gt;createElement("markers"); $parnode = $dom-&gt;appendChild($node); while ($result = mysql_fetch_array($res)){ $node = $dom-&gt;createElement("marker"); $newnode = $parnode-&gt;appendChild($node); $newnode-&gt;setAttribute("city", $result["city"]); $newnode-&gt;setAttribute("lat", $result["latitude"]); $newnode-&gt;setAttribute("lng", $result["longitude"]); } $xmlfile = $dom-&gt;saveXML(); echo $xmlfile; ?&gt; </code></pre> <p>Thank you for your help!</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload