Autor Zpráva
alibagil
Profil
Zdravím, potřeboval bych poradit.

Na stránkách jsem zprovoznil google mapy, pomocí tohoto kódu: developers.google.com/maps/documentation/javascript/examples/marker-clustering

Všechno funguje, jen bych teď potřeboval data, tedy souřadnice lat a lng nenačítat z pole locations, ale z externího xml souboru, který si připravím, resp. který se bude následně generovat z dat v databázi. A za boha nemůžu přijít na to, jak to udělat :-( Poradil by někdo?
blaaablaaa
Profil
alibagil:
Ajaxem si natáhneš xml, vytvoříš markery a předáš do clustereru stejně jako teď.
alibagil
Profil
Díky moc za odpověď. Myslíš, že bys mě mohl alespoň nějak navést, ukázat konkrétně jak na to? Protože já se to snažím od rána udělal, přečetl jsem hromadu různých návodů, ale konkrétně do toho kódu z odkazu se mi to nedaří dostat.

Zprovoznil jsem něco takového: www.webucator.com/how-to/how-read-xml-files-with-the-google-maps-api.cfm

Ale tam zase nemůžu dostat ten clustering :-(
blaaablaaa
Profil
alibagil:
Ukaž, co máš a dáme to dokupy. Když vycházím z toho odkazu, tak tam si stačí před for vytvořit pole var markers = [];, v cyklu nahradit var marker = new xxx; ... za markers.push(new xxx...);
Za cyklus pak vytvoříš markerCluster stejně jako dosud.
alibagil
Profil
blaaablaaa:

Díky moc. Už jsem to včera nakonec dal nějak do kupy, v podstatě podobně, jak navrhuješ, jenom jsem tam ještě následně přihodil kód pro InfoWindow. Dávám to sem k dispozici, kdyby někdo bojoval s něčím podobným.


$.ajax({
   type: 'GET',
   async: true,
   url: 'seznam.xml',
   dataType: 'xml',
   success: function(xml) {
       var markers = [];
       var i = 0;
       var infowindow = new google.maps.InfoWindow();
       $(xml).find('place').each(function(){
            var content = $(this).find('content').text();
            var latLng = new google.maps.LatLng($(this).find('lat').text(), $(this).find('lng').text());                                
            var marker = new google.maps.Marker({
                  position: latLng                                    
            });
            markers.push(marker);
            google.maps.event.addListener(marker, 'click', (function(marker, i) {
            return function() {
                  infowindow.setContent(content);
                  infowindow.open(map, marker);
            }
            })(marker, i));
            i++;
      });
            var markerCluster = new MarkerClusterer(map, markers, {
                   imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'
            });                            
    }
});
blaaablaaa
Profil
alibagil:
Ten markerCluster dej az za cyklus
alibagil
Profil
blaaablaaa:

Je za cyklem, jenom závorka nebyla na úrovni začátku cyklu, upraveno.

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:

0