Вход Регистрация
Файл: module-assets/admin/gmaps/lib/gmaps.static.js
Строк: 147
<?php
GMaps
.prototype.toImage = function(options) {
  var 
options = options || {},
      
static_map_options = {};

  
static_map_options['size'] = options['size'] || [this.el.clientWidth, this.el.clientHeight];
  
static_map_options['lat'] = this.getCenter().lat();
  
static_map_options['lng'] = this.getCenter().lng();

  if (
this.markers.length > 0) {
    
static_map_options['markers'] = [];
    
    for (var 
i = 0; i < this.markers.length; i++) {
      
static_map_options['markers'].push({
        
lat: this.markers[i].getPosition().lat(),
        
lng: this.markers[i].getPosition().lng()
      });
    }
  }

  if (
this.polylines.length > 0) {
    var 
polyline = this.polylines[0];
    
    
static_map_options['polyline'] = {};
    
static_map_options['polyline']['path'] = google.maps.geometry.encoding.encodePath(polyline.getPath());
    
static_map_options['polyline']['strokeColor'] = polyline.strokeColor
    static_map_options
['polyline']['strokeOpacity'] = polyline.strokeOpacity
    static_map_options
['polyline']['strokeWeight'] = polyline.strokeWeight
  
}

  return 
GMaps.staticMapURL(static_map_options);
};

GMaps.staticMapURL = function(options){
  var 
parameters = [],
      
data,
      
static_root = 'http://maps.googleapis.com/maps/api/staticmap';

  if (
options.url) {
    
static_root = options.url;
    
delete options.url;
  }

  
static_root += '?';

  var 
markers = options.markers;
  
  
delete options.markers;

  if (!
markers && options.marker) {
    
markers = [options.marker];
    
delete options.marker;
  }

  var 
polyline = options.polyline;
  
delete options.polyline;

  
/** Map options **/
  
if (options.center) {
    
parameters.push('center=' + options.center);
    
delete options.center;
  }
  else if (
options.address) {
    
parameters.push('center=' + options.address);
    
delete options.address;
  }
  else if (
options.lat) {
    
parameters.push(['center=', options.lat, ',', options.lng].join(''));
    
delete options.lat;
    
delete options.lng;
  }
  else if (
options.visible) {
    var 
visible = encodeURI(options.visible.join('|'));
    
parameters.push('visible=' + visible);
  }

  var 
size = options.size;
  if (
size) {
    if (
size.join) {
      
size = size.join('x');
    }
    
delete options.size;
  }
  else {
    
size = '630x300';
  }
  
parameters.push('size=' + size);

  if (!
options.zoom) {
    
options.zoom = 15;
  }

  var 
sensor = options.hasOwnProperty('sensor') ? !!options.sensor : true;
  
delete options.sensor;
  
parameters.push('sensor=' + sensor);

  for (var 
param in options) {
    if (
options.hasOwnProperty(param)) {
      
parameters.push(param + '=' + options[param]);
    }
  }

  
/** Markers **/
  
if (markers) {
    var 
marker, loc;

    for (var 
i=0; data=markers[i]; i++) {
      
marker = [];

      if (
data.size && data.size !== 'normal') {
        
marker.push('size:' + data.size);
      }
      else if (
data.icon) {
        
marker.push('icon:' + encodeURI(data.icon));
      }

      if (
data.color) {
        
marker.push('color:' + data.color.replace('#', '0x'));
      }

      if (
data.label) {
        
marker.push('label:' + data.label[0].toUpperCase());
      }

      
loc = (data.address ? data.address : data.lat + ',' + data.lng);

      if (
marker.length || i === 0) {
        
marker.push(loc);
        
marker = marker.join('|');
        
parameters.push('markers=' + encodeURI(marker));
      }
      
// New marker without styles
      
else {
        
marker = parameters.pop() + encodeURI('|' + loc);
        
parameters.push(marker);
      }
    }
  }

  
/** Polylines **/
  
function parseColor(color, opacity) {
    if (
color[0] === '#'){
      
color = color.replace('#', '0x');

      if (
opacity) {
        
opacity = parseFloat(opacity);
        
opacity = Math.min(1, Math.max(opacity, 0));
        if (
opacity === 0) {
          return 
'0x00000000';
        }
        
opacity = (opacity * 255).toString(16);
        if (
opacity.length === 1) {
          
opacity += opacity;
        }

        
color = color.slice(0,8) + opacity;
      }
    }
    return 
color;
  }

  if (
polyline) {
    
data = polyline;
    
polyline = [];

    if (
data.strokeWeight) {
      
polyline.push('weight:' + parseInt(data.strokeWeight, 10));
    }

    if (
data.strokeColor) {
      var 
color = parseColor(data.strokeColor, data.strokeOpacity);
      
polyline.push('color:' + color);
    }

    if (
data.fillColor) {
      var 
fillcolor = parseColor(data.fillColor, data.fillOpacity);
      
polyline.push('fillcolor:' + fillcolor);
    }

    var 
path = data.path;
    if (
path.join) {
      for (var 
j=0, pos; pos=path[j]; j++) {
        
polyline.push(pos.join(','));
      }
    }
    else {
      
polyline.push('enc:' + path);
    }

    
polyline = polyline.join('|');
    
parameters.push('path=' + encodeURI(polyline));
  }

  
parameters = parameters.join('&');
  return 
static_root + parameters;
};
?>
Онлайн: 1
Реклама