Autor Zpráva
TomasRe
Profil
Zdravím všechny. Chtěl bych poprosit, zda by mi někdo mohl poradit se scriptem (v javascriptu bohužel téměř vůbec neumím) v Google mapách. V následujícím kódu bych potřeboval upravit
1. odkaz nyní funguje na základě pořadí, což nebude fungovat, pokud vypíšu pouze určitou část odkazů. Pokud bych měl atribut v souboru data.xml, šlo by upravit, aby hodnota "i" pro odkaz nebyla dle pořadí, ale podle tohoto atributu (např. idp)?
2. lze upravit ikony poloh, aby byly vlastní (myšleno dvě různé podle dalšího atributu v souboru data.xml? - např. icon)
Moc děkuji za jakoukoliv pomoc.

<style>#layout {width:950px;margin:10px auto;text-align:left;}</style>
    
<script type="text/javascript" src="http://www.google.com/jsapi?key=API_key"></script>    
<script type="text/javascript">
  google.load("maps", "2.x");
  
  var global_markers = new Array();
  var map;
   
  function createMarker(point, content, cap) {
    var opt = new Object();
    opt.title = cap;
    var marker = new GMarker(point, opt);  
    GEvent.addListener(marker, "click", function() {
      map.setCenter(point, 15);
      marker.openInfoWindowHtml(content);  
    });  
    return marker;
  }

  function initialize() {
    map = new google.maps.Map2(document.getElementById("map"));
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GOverviewMapControl());
    map.setCenter(new GLatLng(50.08380233140971, 14.431915283203125), 13);   

    GDownloadUrl("data.xml", function(data, responseCode) {  
      var xml = GXml.parse(data);                                  
      var s;
      var hotels = xml.documentElement.getElementsByTagName("hotel");
      
      for (var i = 0; i < hotels.length; i++) {

        var point = new GLatLng(parseFloat(hotels[i].getAttribute("lat")),                            
                                parseFloat(hotels[i].getAttribute("lng")));
                                
        s = "<h1>" + hotels[i].getAttribute("label") + "</h1><img src='"+hotels[i].getAttribute("image")+"' alt='"+hotels[i].getAttribute("label")+"' width='190'><br><a href='"+hotels[i].getAttribute("url")+"' target='_blank'>detail &raquo;</a>";

        var marker = createMarker(point, s, hotels[i].getAttribute("label"));
        
        global_markers [global_markers.length] = marker;
        
        map.addOverlay(marker);
      }
    });
             
  }      
  google.setOnLoadCallback(initialize);    
</script>
    
<body onLoad="initialize()" onUnload="GUnload()">
    <div id="layout">
        <div id="map" style="width: 600px; height: 600px;float:right"></div>
        <p><a href="#" onClick="GEvent.trigger(global_markers[0], 'click');">hotel 1 &raquo;</a><br>
        <a href="#" onClick="GEvent.trigger(global_markers[1], 'click');">hotel 2 &raquo;</a><br>
        <a href="#" onClick="GEvent.trigger(global_markers[2], 'click');">hotel 3 &raquo;</a></p>
    </div>
</body>

Soubor data.xml pak vypadá takto:

<?xml version="1.0" encoding="UTF-8"?>
<hotels>
  <hotel lat="50.087615" lng="14.423633" label="Hotel U Zlatého jelena" image="u-zlateho-jelena.jpg" url="http://www.hotel-u-zlateho-jelena.cz/cz-index.php" idp="9" icon="1"/>
  <hotel lat="50.07082360418433" lng="14.442579746246338" label="Pension Beetle" image="pension-beetle.jpg" url="http://www.pension-beetle.cz/cz-index.php" idp="10" icon="1"/>
  <hotel lat="50.08458" lng="14.416553" label="Hotel U Červené Židle" image="u-cervene-zidle.jpg" url="http://www.beetle-tour.cz/cz-red-chair-pension.php" idp="11" icon="2"/>
</hotels>

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: