Dear Ryan,

I've tried to post there. I posted the HTML and javascript (signed up
for a new GMaps API key for mootools.net), but couldn't make it work.
http://mootools.net/shell/YZKUs/



On Jan 13, 4:22 pm, Ryan Florence <[email protected]> wrote:
> Best way to get help is to post a test case onhttp://mooshell.net,  
> then we can not only look at the code, but also execute it.
>
> On Jan 13, 2010, at 11:18 AM, machadoug wrote:
>
> > Greetings,
>
> > I'm new to the group and I looked for posting guidelines but found
> > none;
>
> > I'm trying to create a class to handle Google Maps.
>
> > My problem:
> > The operation seems to be aborted whenever the showAddress method
> > calls this.loadMap();
>
> > The code is part of a Joomla component that I'm developing, therefore
> > I created a small page with the code:
> >http://ideal.fok.com.br/gmaps/
>
> > I don't know if it makes easier to post the code, it is bellow anyway:
> > var CEGMaps = new Class({
> >    options: {
> >            maplayer:               'map_canvas',
> >            latInput:               'lat',
> >            lngInput:               'lng',
> >            zoomInput:      'zoom',
> >            address:                'undefined',
> >            language: {
> >                    txtErrorAddress:        'Address ## not found',
> >                    txtMapAddress:          'Address: <br /> ##'
> >                    }
> >  },
>
> >    initialize: function(options){
> >            if(!GBrowserIsCompatible()) return false;
> >            this.eventsloaded       = 0;
> >            this.setOptions(options);
> >            this.geocoder   = new GClientGeocoder();
> >            this.maplayer   = $(this.options.maplayer);
> >            this.lat                = $(this.options.latInput).value;
> >            this.lng                = $(this.options.lngInput).value;
> >            this.zoom               = $(this.options.zoomInput).value;
> >            this.address    = this.options.address;
>
> >            this.map                = new GMap2(this.maplayer);
> >            //      this.map.addControl(new GSmallMapControl());
> >            //this.map.addControl(new GMapTypeControl());
>
> >            this.point      = new GLatLng(this.lat, this.lng);
> >            this.marker             = new GMarker(this.point, {draggable: 
> > true});
>
> >            if( (this.lat != 0 &&    this.lng != 0) || this.address ==
> > 'undefined' ){
> >                    this.loadMap();
> >            }else if(this.address != 'undefined'){
> >                    this.showAddress(this.address);
> >            }else{
> >                    this.loadMap();
> >            }
> >            this.map.addOverlay(this.marker);
> >    },
> >    showAddress: function(address){
> >            this.address    = address;
>
> >            this.geocoder.getLatLng(
> >            address,
> >            function(point){
> >                    if(point){
> >                            this.point      = point;
> >                            this.loadMap();
> >                    }
> >                    else{
> >                            
> > alert(this.options.language.txtErrorAddress.replace(/##/,
> > address) );
> >                    }
> >            }
> >    )},
>
> >    loadMap: function(){
> >            alert(this.point); //testing;
> >            this.map.setCenter(this.point);
> >            this.map.setZoom(this.zoom.toInt());
> >            this.map.setUIToDefault();
> >            this.marker.setLatLng(this.point);
> >            this.marker.openInfoWindowHtml
> > (this.options.language.txtMapAddress.replace(/##/, this.address) );
> >            this.loadEventListeners();
> >            this.saveCoordinates();
> >            this.loadEventListeners();
> >    },
>
> >    saveCoordinates: function() {
> >            var coordinates = this.marker.getLatLng();
> >            coordinates             = 
> > coordinates.toString().replace('(','').replace
> > (')','');
> >            coordinates             = coordinates.split(',');
> >            $(this.options.latInput).setProperty('value', 
> > trim(coordinates[0]));
> >            $(this.options.lngInput).setProperty('value', trim(coordinates
> > [1]));
> >            $(this.options.zoomInput).setProperty('value', 
> > this.map.getZoom());
> >    },
>
> >    loadEventListeners: function(){
> >            if(this.eventsloaded > 0){ return false;}
> >            this.eventsloaded++;
> >            GEvent.addListener(this.map, 'mouseout', function() {
> >                    // If I use "this" instead of "document.CEMaper" it shows
> > "this.saveCoordinates() is not a function" error
> >                    document.CEMaper.saveCoordinates();
>
> >            });
> >            GEvent.addListener(this.marker, 'dragstart', function() {
> >                    document.CEMaper.map.closeInfoWindow();
> >            });
>
> >            GEvent.addListener(this.marker, 'dragend', function() {
> >                    document.CEMaper.marker.openInfoWindowHtml
> > (document.CEMaper.options.language.txtMapAddress.replace(/##/,
> > this.address));
> >            });
> >    }
> > }
> > );
> > CEGMaps.implement(new Options);
>
> > The class can also be found here:
> >http://ideal.fok.com.br/components/com_contact_enhanced/assets/js/gma...
>
> > Any help is highly appreciated.
>
> > Kind regards,
>
> > Douglas

Reply via email to