Witam
Mam zrobioną mapę gdzie wyświetla mi z bazy adresy klientów. Z bzy do xml i z xml na mapie.
W xml też jest podany adres markera jakim ma być to zaznaczone na mapie.
Oto JS.
Kod
<script type="text/javascript">  
        <!--
            var mapa;     // obiekt globalny
            var dymek;     // okno z informacjami
                        
            function mapaStart()  
            {  
                var wspolrzedne = new google.maps.LatLng(52.348763181988076, 18.61083984375);
                var opcjeMapy = {
                    zoom: 6,
                    center: wspolrzedne,
                    mapTypeId: google.maps.MapTypeId.SATELLITE,
                    disableDefaultUI: true
                };
                mapa = new google.maps.Map(document.getElementById("mapka"), opcjeMapy);             
                dymek = new google.maps.InfoWindow();
                
                wczytajMarkery();

            }  
            
            function wczytajMarkery()
            {
                jx.load('klienci/wczytaj.php', function(xml)
                {
                    var markery = xml.getElementsByTagName("marker");
                    for(var i=0; i<markery.length; i++)
                    {
                        var lat            =    parseFloat(markery[i].attributes.getNamedItem("lat").nodeValue);
                        var lon            =    parseFloat(markery[i].attributes.getNamedItem("lng").nodeValue);
                        var ikona_url    =    markery[i].attributes.getNamedItem("ikona").nodeValue;
                        var nazwa        =    markery[i].attributes.getNamedItem("klient").nodeValue;
                        var marker        =    dodajMarker(lat,lon,ikona_url,nazwa);
                    }
                    alert('Wczytano '+markery.length+' markerów z pliku dane1.xml');
                },'xml','get');
            }
                
            function dodajMarker(lat,lon,ikona_url,nazwa)
            {
                var rozmiar = new google.maps.Size(30,23);  
                var punkt_startowy = new google.maps.Point(0,0);  
                var punkt_zaczepienia = new google.maps.Point(15,12);  
                  
                var ikona = new google.maps.MarkerImage(ikona_url, rozmiar, punkt_startowy, punkt_zaczepienia);
                
                var marker    =    new google.maps.Marker(
                    {
                        position: new google.maps.LatLng(lat,lon),
                        title: nazwa,
                        icon: ikona,
                        map: mapa
                    }
                );
                marker.txt    =    'Klient:<br /><strong>'+nazwa+'</strong>';
                
                google.maps.event.addListener(marker,"click",function()
                {
                    dymek.setPosition(marker.getPosition());
                    dymek.setContent(marker.txt);
                    dymek.open(mapa);
                });
                return marker;
            }
        -->
        </script>


Ale chciałbym to połączyć z JS odpowiadającym za zaznaczanie obszaru na mapie.
Kod tutaj:
http://gmapsapi.com/przyklad/028/02.txt
Ale tam wyświetlane są automatycznie generowane miejsca:
Kod
    
        function dodajMarkery(mapa)
        {
            for(var i=0; i<50; i++)
            {
                var x = parseInt(Math.random()*600);
                var y = parseInt(Math.random()*400);
                var punktXY = new GPoint(x,y);
                var punktLatLng = mapa.fromDivPixelToLatLng(punktXY);
                var marker = new GMarker(punktLatLng,{icon: ikonka, clickable: false});
                marker.ikonka = '/examples/028/off.png';
                mapa.addOverlay(marker);
                markery.push(marker);
            }
        }

i jest różnica w mapaStart() odnośnie wczytania markerów. U mnie jest jeszcze dodajMarker(). Próbowałem zrobić aby zamiast powyższego kodu dodajMarkery wczytywało moje, ale chyba źle to łącze.

zmieniłem to i wyskakuje, że wczytało ileś tam markerów, ale nie wyświetla ich na mapie:/
Coś się mieszają te ikonki. Z bazy czyta ikonkę inną a tutaj są podane inne
Kod
    var mapa;     // obiekt globalny
        var dymek;     // okno z informacjami
        var obszar = null;
        var markery = [];
        var ikonka = new GIcon();
        ikonka.image = 'off.png';
        ikonka.shadow = 'http://maps.google.com/mapfiles/kml/pal4/icon24s.png';
        ikonka.iconSize = new GSize(32,32);
        ikonka.shadowSize = new GSize(59,32);
        ikonka.infoWindowAnchor = new GPoint(16,16);
        ikonka.iconAnchor = new GPoint(16,16);
        
        GMarker.prototype.zmienObraz = function(url)
        {
            this.ikonka = url;
            this.setImage(url);
        }
                
        function zaznaczMarkery(ograniczenie)
        {
            var licznik = 0;
            for(var i=0; i<markery.length; i++)
            {
                if(ograniczenie.contains(markery[i].getPoint()))
                {
                    licznik ++;
                    if(markery[i].ikonka!='on.png')
                        markery[i].zmienObraz('on.png');
                }
                else
                {
                    if(markery[i].ikonka!='off.png')
                        markery[i].zmienObraz('off.png');
                }
            }
            GLog.write('Zaznaczonych jest '+licznik+' markerów');
        }
        
        
        
        function mapaStart()
        {
            
                var mapa = new GMap2(document.getElementById('mapka'));
                mapa.setCenter(new GLatLng(52.348763181988076, 18.61083984375),6,G_SATELLITE_MAP);  
                
                dodajMarkery(mapa);
                GEvent.addListener(mapa,'mousemove',function(p)
                {
                    if(!obszar || !obszar.punkt1)
                        return;
                    obszar.ustawPunktKoncowy(p);
                });
                
                GEvent.addListener(mapa,'click',function(o,p)
                {
                    if(!p)
                        return;
                    if(!obszar)
                    {
                        obszar = new ZaznaczObszar(p);
                        mapa.addOverlay(obszar);
                    }
                    else
                    {
                        zaznaczMarkery(obszar.pobierz());
                        obszar.remove();
                        obszar = null;
                    }
                });
            
        
        }    
        
        

function dodajMarkery(mapa)
        {
                jx.load('klienci/wczytaj.php', function(xml)
                {
                    var markery = xml.getElementsByTagName("marker");
                    for(var i=0; i<markery.length; i++)
                    {
                        var lat            =    parseFloat(markery[i].attributes.getNamedItem("lat").nodeValue);
                        var lon            =    parseFloat(markery[i].attributes.getNamedItem("lng").nodeValue);
                        var ikona_url    =    markery[i].attributes.getNamedItem("ikona").nodeValue;
                        var nazwa        =    markery[i].attributes.getNamedItem("klient").nodeValue;
                        var marker        =    dodajMarker(lat,lon,ikona_url,nazwa);
                    }
                    alert('Wczytano '+markery.length+' markerów z pliku dane1.xml');
                },'xml','get');
        }
        
                        
            function dodajMarker(lat,lon,ikona_url,nazwa)
            {
                var rozmiar = new google.maps.Size(30,23);  
                var punkt_startowy = new google.maps.Point(0,0);  
                var punkt_zaczepienia = new google.maps.Point(15,12);  
                  
                var ikona = new google.maps.MarkerImage(ikona_url, rozmiar, punkt_startowy, punkt_zaczepienia);
            
                
                var marker    =    new google.maps.Marker(
                    {
                        position: new google.maps.LatLng(lat,lon),
                        title: nazwa,
                        icon: ikona,
                        map: mapa
                    }
                );
                marker.txt    =    'Klient:<br /><strong>'+nazwa+'</strong>';
                
                google.maps.event.addListener(marker,"click",function()
                {
                    dymek.setPosition(marker.getPosition());
                    dymek.setContent(marker.txt);
                    dymek.open(mapa);
                });
                return marker;
            }
            
            
            
        
        
        function ZaznaczObszar(punkt1,punkt2)  
        {  
            this.punkt1 = punkt1;  
            this.punkt2 = punkt2 || punkt1;
        };
        
        ZaznaczObszar.prototype = new GOverlay();  

        ZaznaczObszar.prototype.pobierz = function()
        {
            var granica = new GLatLngBounds();
            granica.extend(this.punkt1);
            granica.extend(this.punkt2);
            return granica;
        };
        
        ZaznaczObszar.prototype.ustawPunktKoncowy = function(punkt)
        {
            this.punkt2 = punkt;
            this.redraw(true);
        };
        
        ZaznaczObszar.prototype.initialize = function(mapa)
        {
            this.mapa = mapa;
            var kontener = document.createElement('div');
            kontener.style.border = '2px solid red';            
            kontener.style.position = 'absolute';
            this.mapa.getPane(G_MAP_MAP_PANE).appendChild(kontener);
            this.kontener = kontener;
        };
        
        ZaznaczObszar.prototype.remove = function()
        {
            this.kontener.parentNode.removeChild(this.kontener);
        };

        ZaznaczObszar.prototype.copy = function()
        {
            return new ZaznaczObszar(this.punkt1,this.punkt2);
        };

        ZaznaczObszar.prototype.redraw = function(wymus)
        {
            if (!wymus || !this.punkt2 || !this.punkt1)
                return;
                
            var x1 = this.mapa.fromLatLngToDivPixel(this.punkt1).x;
            var y1 = this.mapa.fromLatLngToDivPixel(this.punkt1).y;
            var x2 = this.mapa.fromLatLngToDivPixel(this.punkt2).x;
            var y2 = this.mapa.fromLatLngToDivPixel(this.punkt2).y;
            
            if(x1>x2)
            {
                var x_temp = x1;
                x1 = x2;
                x2 = x_temp;
            }
            
            if(y1>y2)
            {
                var y_temp = y1;
                y1 = y2;
                y2 = y_temp;
            }
            
            this.kontener.style.left     = x1+'px';
            this.kontener.style.top     = y1+'px';
            this.kontener.style.width    = x2-x1+'px';
            this.kontener.style.height    = y2-y1+'px';
        };