8 views
Skip to first unread message

Sofia Politou

unread,
May 25, 2011, 8:53:07 PM5/25/11
to google-map...@googlegroups.com
Hi there, i have a little problem!!!I am doing a project about my school. I have this file:
<html>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map; 
var placesArr = []; // Pinakas gia places (markers)
var squaresArr = [];   // pinakas gia squares (polugons)
var roadsArr = [];  // pinakas gia grammes (polylines)
function initialize() // Kaleitai otan emfanizetai o xarths
{
    var drama = new google.maps.LatLng(41.150557,24.146292);
    map = new google.maps.Map(document.getElementById("map"),
    {
        zoom: 16,
        center: drama,
        mapTypeId: google.maps.MapTypeId.ROADMAP

    });
   downloadUrl("coordsDrama.xml",readAndDisplayXML);

}

// Ektos apo emfanish KAI apo8hkeush markers/polygons/polylines stous pinakes placesArr, squaresArr, roadsArr
function readAndDisplayXML(data) // orismos readAndDisplayXML ektos ths downloadUrl
{
    var xml = data.responseXML;
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++)
{   
        var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
           var marker = new google.maps.Marker({position: latlng, map: map}); // emfanish tou epomenou marker sto xarth
var info = markers[i].getAttribute("info");
var contentString = html;
var html = "<b>"+info+"<\/b><p>";
var infowindow = new google.maps.InfoWindow({ 
  content: info
});
 google.maps.event.addListener(marker,'click',function ()
    {        infowindow.setContent(contentString);
                                      
                    infowindow.open(map,marker);
         });
}    
    placesArr.push(markers);   
    var polys = xml.documentElement.getElementsByTagName("polygon");
    // An yparxoun sto xml polys.length > 0
    for (var i = 0; i < polys.length; i++)                   // Gia ka8e polygon i ...
    {
        var points = polys[i].getElementsByTagName("point"); // ...diabase ta points tou i polygon
        var info =polys[i].getAttribute("polygon info");
        var gpolyCoords = new Array(points.length)           // ston pinaka gpolyCoords
        for (var j =0; j < points.length; j++)               // me auto to for
             gpolyCoords[j] = new google.maps.LatLng(parseFloat(points[j].getAttribute("lat")),parseFloat(points[j].getAttribute("lng")));
    
        // Emfanish sto xarth tou polugwnou apo ta shmeia tou gpolyCoords
       poly = new google.maps.Polygon(
        {
            path: gpolyCoords,  // Αuto eleipe
            strokeWeight: 1,
            fillColor: '#3B00FF',
            strokeColor: '#3B00FF',
            geodesic: true
        });

        poly.setMap(map); // Auth h entolh emfanizei to poly
 }     squaresArr.push(poly);
     var polyl = xml.documentElement.getElementsByTagName("polyline");
    // An yparxoun sto xml polys.length > 0
    for (var i = 0; i < polyl.length; i++)                   // Gia ka8e polyline i ...
    {
        var points = polyl[i].getElementsByTagName("point"); // ...diabase ta points tou i polygon
        var gpolyCoords = new Array(points.length)           // ston pinaka gpolyCoords
        for (var j =0; j < points.length; j++)               // me auto to for
             gpolyCoords[j] = new google.maps.LatLng(parseFloat(points[j].getAttribute("lat")),parseFloat(points[j].getAttribute("lng")));
        
        // Emfanish sto xarth tou polugwnou apo ta shmeia tou gpolyCoords
        polyline = new google.maps.Polyline( // Oxi polugon
        {
            path: gpolyCoords,  // Αuto eleipe
            strokeWeight: 3,
            fillColor: '#3B00FF',
            strokeColor: '#FF0000',
            geodesic: true
        });
        polyline.setMap(map); // Auth h entolh emfanizei to polyline panw ston xarth
    }
   roadsArr.push(polyl);
}

function downloadUrl(url,callback)
{
     var request = window.ActiveXObject ?
         new ActiveXObject('Microsoft.XMLHTTP') :
         new XMLHttpRequest;

     request.onreadystatechange = function() {
           if (request.readyState == 4) {
                 request.onreadystatechange = doNothing;
                 callback(request, request.status);
               }
     };

         request.open('GET', url, true);
         request.send(null);
}
function doNothing() {}

function doOnClick(id)
{
    var state = document.getElementById(id).checked; // true ή false
if (state == true)                // Dior8: if (state == true)
{  
    if (id=="places")             // Dior8: if (id=="places")
    {
    for (var i=0; i< placesArr.length; i++)
       
              placesArr[i].setMap(map);

    }
    else if (id=="squares")
    {
    for (var i=0; i< squaresArr.length; i++)
       
              squaresArr[i].setMap(map);// Kwdikas for gia squaresArr
    }
    else if (id=="roads")
    {
    for (var i=0; i< roadsArr.length; i++)
       
              roadsArr[i].setMap(map);// kwdikas for gia roadsArr
    }
 
}
else // to state tou epipedou (places/squares/roads) einai false
{        if (id=="roads") polyl.setMap(null);
    if (id=="squares") poly.setMap(null);
   
    // Kwdikas gia e3afanish tou epipedou, dhl. setMap(null);
}


}


</script>
</head>
<body onload="initialize()">
<div id="form" style="width: 100%; height: 13%" align="center">
<form>
<!-- 8ewroume sthn arxh oti kai ta 3 checkbox einai epilegmena (checked="true")
    dhl. oti emfanizontai ta epipeda e3arxhs --> 
<input type="checkbox" id="places" value="Places" checked="true" onclick="doOnClick(id)"/> Places <br>
<input type="checkbox" id="squares" value="Squares" checked="true" onclick="doOnClick(id)"/> Squares <br>
<input type="checkbox" id="roads" value="Roads" checked="true" onclick="doOnClick(id)"/> Roads <br>
<br />
<br />
<br />
<br />
</div>
<div id="map" style="width: 100%; height: 100%;"></div>
</body>
</html>

I want these things:
infowindows when i click on a marker, a polygon, a polyline which is taken by the info in the xml file
Also, when i click on the 1st checkbox the markers toggle visibility...etc
All data is in the xml file which is this:
<?xml version="1.0" encoding="utf-8"?>
<list>
<marker lat="41.148115" lng="24.145251" info="ΚΤΕΛ Δράμας" />

      <marker lat="41.149057" lng="24.143776" info="ΚΤΕΛ Σερρών" />
 
      <marker lat="41.149585" lng="24.145514" info="ΚΤΕΛ Αφετηρία" />


 
      
   
<polyline info="Aγίας Σοφίας">
 
  <point lat="41.150934" lng="24.145691"/>
  
  <point lat="41.1509" lng="24.145774"/>
   
  <point lat="41.150557" lng="24.146292"/>
 
  <point lat="41.150369" lng="24.146605" />
 
  <point lat="41.150284" lng="24.146825" />
 
  <point lat="41.150181" lng="24.147059" />
  
  <point lat="41.150098" lng="24.147104"/>
 
</polyline>
 
<polygon info="Πλατεία Αγίας Ελευθερίας">
   
  <point lat="41.150308" lng="24.146664" />
   
  <point lat="41.149884" lng="24.14642" />
  
  <point lat="41.149771" lng="24.146396" />
  
  <point lat="41.149634" lng="24.147069" />
  
  <point lat="41.150078" lng="24.14708" />
   
  <point lat="41.150169" lng="24.14704" />
   
  <point lat="41.150215" lng="24.146959" />
 
</polygon>
 
<polygon info="Δημοτικός Κήπος Κομοτηνής">
   
  <point lat="41.149117" lng="24.146117"/>
 
  <point lat="41.147909" lng="24.1455" />
 
  <point lat="41.147986" lng="24.144765" />
 
  <point lat="41.147509" lng="24.144304" />
 
  <point lat="41.146621" lng="24.146946" />
 
  <point lat="41.148948" lng="24.147053" />
 
  <point lat="41.149004" lng="24.146863" />
 
</polygon>
</list>
I have seen already this http://www.geocodezip.com/v3_MW_example_categories.html
but it wasn't helpful.
 Could anyone please help me??????? Thank you!!!!

Chris Broadfoot

unread,
May 25, 2011, 9:33:45 PM5/25/11
to google-map...@googlegroups.com
On Thu, May 26, 2011 at 10:53 AM, Sofia Politou <sofiap...@yahoo.gr> wrote:
Hi there, i have a little problem!!!I am doing a project about my school. I have this file:

OK - could you please read the posting guidelines first?

Send a *link*, and then ask a question or tell us your problem.

Reply all
Reply to author
Forward
0 new messages