// vim: et:ts=4:sw=4:sts=4:ft=javascript 'use strict'; /*@ Ox.MapImage MapImage Object () -> MapImage Object (options) -> MapImage Object (options, self) -> MapImage Object options Options object height image height (px) place Object with south, west, north and east properties type map type ('hybrid', 'roadmap', 'satellite', 'terrain') width image width (px) self shared private variable @*/ Ox.MapImage = function(options, self) { var self = self || {}, that = Ox.Element('', self) .defaults({ backgroundColor: [0, 0, 0, 0], borderColor: [0, 0, 0, 0], borderWidth: 0, height: 360, place: null, type: 'satellite', width: 640 }) .options(options || {}) self.src = document.location.protocol + '//maps.google.com/maps/api/staticmap?sensor=false' + '&size=' + self.options.width + 'x' + self.options.height + '&maptype=' + self.options.type; if (self.options.place) { self.src += '&path=fillcolor:' + formatColor(self.options.backgroundColor) + '|color:0x' + formatColor(self.options.borderColor) + '|weight:' + self.options.borderWidth + '|' + [ ['south', 'west'], ['north', 'west'], ['north', 'east'], ['south', 'east'], ['south', 'west'] ].map(function(keys) { return [ self.options.place[keys[0]], self.options.place[keys[1]] ].join(','); }).join('|'); } else { self.src += '¢er=0,0&zoom=2' } that.attr({ src: self.src }); function formatColor(color) { return color.map(function(c) { return Ox.pad(c.toString(16), 2); }).join('') } self.setOption = function(key, value) { }; return that; };