summaryrefslogtreecommitdiff
path: root/plugins/Mapstraction/js/mxn.geocommons.core.js
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Mapstraction/js/mxn.geocommons.core.js')
-rw-r--r--plugins/Mapstraction/js/mxn.geocommons.core.js233
1 files changed, 233 insertions, 0 deletions
diff --git a/plugins/Mapstraction/js/mxn.geocommons.core.js b/plugins/Mapstraction/js/mxn.geocommons.core.js
new file mode 100644
index 000000000..08be811fa
--- /dev/null
+++ b/plugins/Mapstraction/js/mxn.geocommons.core.js
@@ -0,0 +1,233 @@
+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;
+ 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
+ },
+
+ 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(googlePoint) {
+ // 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
+ }
+
+ }
+
+}); \ No newline at end of file