<commit_before>mxn.register('geocommons', {	

    Mapstraction: {

        // These methods can be called anytime but will only execute
        // once the map has loaded. 
        deferrable: {
            applyOptions: true,
            resizeTo: true,
            addControls: true,
            addSmallControls: true,
            addLargeControls: true,
            addMapTypeControls: true,
            dragging: true,
            setCenterAndZoom: true,
            getCenter: true,
            setCenter: true,
            setZoom: true,
            getZoom: true,
            getZoomLevelForBoundingBox: true,
            setMapType: true,
            getMapType: true,
            getBounds: true,
            setBounds: true,
            addTileLayer: true,
            toggleTileLayer: true,
            getPixelRatio: true,
            mousePosition: true
        },

        init: function(element, api) {		
            var me = this;
            this.element = element;
            this.loaded[this.api] = false; // Loading will take a little bit.
            F1.Maker.core_host = f1_core_host;
            F1.Maker.finder_host = f1_finder_host;
            F1.Maker.maker_host = f1_maker_host;

            new F1.Maker.Map({dom_id:this.element.id,
                flashvars: {},                
                onload: function(map){
                    
                    me.maps[me.api] = map.swf; // Get the actual Flash object
                    me.loaded[me.api] = true;                     
                    for (var i = 0; i < me.onload[me.api].length; i++) {
                        me.onload[me.api][i]();
                    }
                 }});
            
          },

        applyOptions: function(){
            var map = this.maps[this.api];

            // TODO: Add provider code
        },

        resizeTo: function(width, height){	
            var map = this.maps[this.api];
            map.setSize(width,height);
        },

        addControls: function( args ) {
            var map = this.maps[this.api];
            map.showControl("Zoom", args.zoom || false);
            map.showControl("Layers", args.layers || false);
            map.showControl("Styles", args.styles || false); 
            map.showControl("Basemap", args.map_type || false);
            map.showControl("Legend", args.legend || false, "open"); 
            // showControl("Legend", true, "close"); 
        },

        addSmallControls: function() {
            var map = this.maps[this.api];
            this.addControls({
                zoom:   'small',
                legend: "open"
            });
            // showControl("Zoom", args.zoom);
            // showControl("Legend", args.legend, "open"); 
        },

        addLargeControls: function() {
            var map = this.maps[this.api];
            this.addControls({
                zoom:   'large',
                layers: true,
                legend: "open"
            });
        },

        addMapTypeControls: function() {
            var map = this.maps[this.api];

            // TODO: Add provider code
        },

        dragging: function(on) {
            var map = this.maps[this.api];

            // TODO: Add provider code
        },

        setCenterAndZoom: function(point, zoom) { 
            var map = this.maps[this.api];
            map.setCenterZoom(point.lat, point.lon,zoom);
        },

        getCenter: function() {
            var map = this.maps[this.api];
            var point = map.getCenterZoom()[0];
            return new mxn.LatLonPoint(point.lat,point.lon);
        },

        setCenter: function(point, options) {
            var map = this.maps[this.api];
            map.setCenter(point.lat, point.lon);            
        },

        setZoom: function(zoom) {
            var map = this.maps[this.api];
            map.setZoom(zoom);
        },

        getZoom: function() {
            var map = this.maps[this.api];
            return map.getZoom();
        },

        getZoomLevelForBoundingBox: function( bbox ) {
            var map = this.maps[this.api];
            // NE and SW points from the bounding box.
            var ne = bbox.getNorthEast();
            var sw = bbox.getSouthWest();
            var zoom;

            // TODO: Add provider code

            return zoom;
        },

        setMapType: function(type) {
            var map = this.maps[this.api];
            switch(type) {
                case mxn.Mapstraction.ROAD:
                map.setMapProvider("OpenStreetMap (road)");
                break;
                case mxn.Mapstraction.SATELLITE:
                map.setMapProvider("BlueMarble");
                break;
                case mxn.Mapstraction.HYBRID:
                map.setMapProvider("Google Hybrid");
                break;
                default:
                map.setMapProvider(type);
            }	 
        },

        getMapType: function() {
            var map = this.maps[this.api];
            switch(map.getMapProvider) {
                case "OpenStreetMap (Road)":
                    retu
                    
            }
            // TODO: Add provider code

            //return mxn.Mapstraction.ROAD;
            //return mxn.Mapstraction.SATELLITE;
            //return mxn.Mapstraction.HYBRID;

        },

        getBounds: function () {
            var map = this.maps[this.api];
            var extent = map.getExtent();
            return new mxn.BoundingBox( extent.northWest.lat, extent.southEast.lon, extent.southEast.lat, extent.northWest.lon);
        },

        setBounds: function(bounds){
            var map = this.maps[this.api];
            var sw = bounds.getSouthWest();
            var ne = bounds.getNorthEast();
            map.setExtent(ne.lat,sw.lat,ne.lon,sw.lon);

        },

        addImageOverlay: function(id, src, opacity, west, south, east, north, oContext) {
            var map = this.maps[this.api];

            // TODO: Add provider code<commit_msg>Adding GeoCommons documentation<commit_after>mxn.register('geocommons', {	

    Mapstraction: {

        // These methods can be called anytime but will only execute
        // once the map has loaded. 
        deferrable: {
            applyOptions: true,
            resizeTo: true,
            addControls: true,
            addSmallControls: true,
            addLargeControls: true,
            addMapTypeControls: true,
            dragging: true,
            setCenterAndZoom: true,
            getCenter: true,
            setCenter: true,
            setZoom: true,
            getZoom: true,
            getZoomLevelForBoundingBox: true,
            setMapType: true,
            getMapType: true,
            getBounds: true,
            setBounds: true,
            addTileLayer: true,
            toggleTileLayer: true,
            getPixelRatio: true,
            mousePosition: true
        },

        init: function(element, api) {		
            var me = this;
            this.element = element;
            this.loaded[this.api] = false; // Loading will take a little bit.
            F1.Maker.core_host = f1_core_host;
            F1.Maker.finder_host = f1_finder_host;
            F1.Maker.maker_host = f1_maker_host;

            new F1.Maker.Map({dom_id:this.element.id,
                flashvars: {},                
                onload: function(map){
                    
                    me.maps[me.api] = map.swf; // Get the actual Flash object
                    me.loaded[me.api] = true;                     
                    for (var i = 0; i < me.onload[me.api].length; i++) {
                        me.onload[me.api][i]();
                    }
                 }});
            
          },

        applyOptions: function(){
            var map = this.maps[this.api];

            // TODO: Add provider code
        },

        resizeTo: function(width, height){	
            var map = this.maps[this.api];
            map.setSize(width,height);
        },

        addControls: function( args ) {
            var map = this.maps[this.api];
            map.showControl("Zoom", args.zoom || false);
            map.showControl("Layers", args.layers || false);
            map.showControl("Styles", args.styles || false); 
            map.showControl("Basemap", args.map_type || false);
            map.showControl("Legend", args.legend || false, "open"); 
            // showControl("Legend", true, "close"); 
        },

        addSmallControls: function() {
            var map = this.maps[this.api];
            this.addControls({
                zoom:   'small',
                legend: "open"
            });
            // showControl("Zoom", args.zoom);
            // showControl("Legend", args.legend, "open"); 
        },

        addLargeControls: function() {
            var map = this.maps[this.api];
            this.addControls({
                zoom:   'large',
                layers: true,
                legend: "open"
            });
        },

        addMapTypeControls: function() {
            var map = this.maps[this.api];

            // TODO: Add provider code
        },

        dragging: function(on) {
            var map = this.maps[this.api];

            // TODO: Add provider code
        },

        setCenterAndZoom: function(point, zoom) { 
            var map = this.maps[this.api];
            map.setCenterZoom(point.lat, point.lon,zoom);
        },

        getCenter: function() {
            var map = this.maps[this.api];
            var point = map.getCenterZoom()[0];
            return new mxn.LatLonPoint(point.lat,point.lon);
        },

        setCenter: function(point, options) {
            var map = this.maps[this.api];
            map.setCenter(point.lat, point.lon);            
        },

        setZoom: function(zoom) {
            var map = this.maps[this.api];
            map.setZoom(zoom);
        },

        getZoom: function() {
            var map = this.maps[this.api];
            return map.getZoom();
        },

        getZoomLevelForBoundingBox: function( bbox ) {
            var map = this.maps[this.api];
            // NE and SW points from the bounding box.
            var ne = bbox.getNorthEast();
            var sw = bbox.getSouthWest();
            var zoom;

            // TODO: Add provider code

            return zoom;
        },

        setMapType: function(type) {
            var map = this.maps[this.api];
            switch(type) {
                case mxn.Mapstraction.ROAD:
                map.setMapProvider("OpenStreetMap (road)");
                break;
                case mxn.Mapstraction.SATELLITE:
                map.setMapProvider("BlueMarble");
                break;
                case mxn.Mapstraction.HYBRID:
                map.setMapProvider("Google Hybrid");
                break;
                default:
                map.setMapProvider(type);
            }	 
        },

        getMapType: function() {
            var map = this.maps[this.api];
            switch(map.getMapProvider) {
                case "OpenStreetMap (Road)":
                break;
            }
            // TODO: Add provider code

            //return mxn.Mapstraction.ROAD;
            //return mxn.Mapstraction.SATELLITE;
            //return mxn.Mapstraction.HYBRID;

        },

        getBounds: function () {
            var map = this.maps[this.api];
            var extent = map.getExtent();
            return new mxn.BoundingBox( extent.northWest.lat, extent.southEast.lon, extent.southEast.lat, extent.northWest.lon);
        },

        setBounds: function(bounds){
            var map = this.maps[this.api];
            var sw = bounds.getSouthWest();
            var ne = bounds.getNorthEast();
            map.setExtent(ne.lat,sw.lat,ne.lon,sw.lon);

        },

        addImageOverlay: function(id, src, opacity, west, south, east, north, oContext) {
            var map = this.maps[this.api];

            // TODO: Add provider code
{'fraction_non_alphanumeric': 0.11186891790734425, 'fraction_numerical': 0.001497130499875239, 'mean_word_length': 1.32932971716389, 'pattern_counts': {'":': 2, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6789271', 'n_tokens_mistral': 3374, 'n_tokens_neox': 3212, 'n_words': 687}