mxn.register('geocommons', { Mapstraction: { init: function(element, api) { var me = this; this.element = element; Maker.maker_host='http://maker.geocommons.com'; Maker.finder_host='http://finder.geocommons.com'; Maker.core_host='http://geocommons.com'; }, 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]; showControl("Zoom", args.zoom); showControl("Legend", args.legend, "open"); }, addLargeControls: function() { var map = this.maps[this.api]; showControl("Zoom", args.zoom); showControl("Layers", args.layers); showControl("Legend", args.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 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; 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 }, addOverlay: function(url, autoCenterAndZoom) { var map = this.maps[this.api]; var me = this; Maker.load_map(this.element.id, url); setTimeout(function() { me.maps[me.api] = swfobject.getObjectById(FlashMap.dom_id);}, 500); }, addTileLayer: function(tile_url, opacity, copyright_text, min_zoom, max_zoom) { var map = this.maps[this.api]; // TODO: Add provider code }, toggleTileLayer: function(tile_url) { var map = this.maps[this.api]; // TODO: Add provider code }, getPixelRatio: function() { var map = this.maps[this.api]; // TODO: Add provider code }, mousePosition: function(element) { var map = this.maps[this.api]; // TODO: Add provider code } }, LatLonPoint: { toProprietary: function() { // TODO: Add provider code }, fromProprietary: function(point) { // TODO: Add provider code } }, Marker: { toProprietary: function() { // TODO: Add provider code }, openBubble: function() { // TODO: Add provider code }, hide: function() { // TODO: Add provider code }, show: function() { // TODO: Add provider code }, update: function() { // TODO: Add provider code } }, Polyline: { toProprietary: function() { // TODO: Add provider code }, show: function() { // TODO: Add provider code }, hide: function() { // TODO: Add provider code } } });