Вход Регистрация
Файл: module-assets/admin/gmaps/lib/gmaps.markers.js
Строк: 227
<?php
GMaps
.prototype.createMarker = function(options) {
  if (
options.lat == undefined && options.lng == undefined && options.position == undefined) {
    throw 
'No latitude or longitude defined.';
  }

  var 
self this,
      
details options.details,
      
fences options.fences,
      
outside options.outside,
      
base_options = {
        
position: new google.maps.LatLng(options.latoptions.lng),
        
mapnull
      
};

  
delete options.lat;
  
delete options.lng;
  
delete options.fences;
  
delete options.outside;

  var 
marker_options extend_object(base_optionsoptions),
      
marker = new google.maps.Marker(marker_options);

  
marker.fences fences;

  if (
options.infoWindow) {
    
marker.infoWindow = new google.maps.InfoWindow(options.infoWindow);

    var 
info_window_events = ['closeclick''content_changed''domready''position_changed''zindex_changed'];

    for (var 
ev 0ev info_window_events.lengthev++) {
      (function(
objectname) {
        if (
options.infoWindow[name]) {
          
google.maps.event.addListener(objectname, function(e){
            
options.infoWindow[name].apply(this, [e]);
          });
        }
      })(
marker.infoWindowinfo_window_events[ev]);
    }
  }

  var 
marker_events = ['animation_changed''clickable_changed''cursor_changed''draggable_changed''flat_changed''icon_changed''position_changed''shadow_changed''shape_changed''title_changed''visible_changed''zindex_changed'];

  var 
marker_events_with_mouse = ['dblclick''drag''dragend''dragstart''mousedown''mouseout''mouseover''mouseup'];

  for (var 
ev 0ev marker_events.lengthev++) {
    (function(
objectname) {
      if (
options[name]) {
        
google.maps.event.addListener(objectname, function(){
          
options[name].apply(this, [this]);
        });
      }
    })(
markermarker_events[ev]);
  }

  for (var 
ev 0ev marker_events_with_mouse.lengthev++) {
    (function(
mapobjectname) {
      if (
options[name]) {
        
google.maps.event.addListener(objectname, function(me){
          if(!
me.pixel){
            
me.pixel map.getProjection().fromLatLngToPoint(me.latLng)
          }
          
          
options[name].apply(this, [me]);
        });
      }
    })(
this.mapmarkermarker_events_with_mouse[ev]);
  }

  
google.maps.event.addListener(marker'click', function() {
    
this.details details;

    if (
options.click) {
      
options.click.apply(this, [this]);
    }

    if (
marker.infoWindow) {
      
self.hideInfoWindows();
      
marker.infoWindow.open(self.mapmarker);
    }
  });

  
google.maps.event.addListener(marker'rightclick', function(e) {
    
e.marker this;

    if (
options.rightclick) {
      
options.rightclick.apply(this, [e]);
    }

    if (
window.context_menu[self.el.id]['marker'] != undefined) {
      
self.buildContextMenu('marker'e);
    }
  });

  if (
marker.fences) {
    
google.maps.event.addListener(marker'dragend', function() {
      
self.checkMarkerGeofence(marker, function(mf) {
        
outside(mf);
      });
    });
  }

  return 
marker;
};

GMaps.prototype.addMarker = function(options) {
  var 
marker;
  if(
options.hasOwnProperty('gm_accessors_')) {
    
// Native google.maps.Marker object
    
marker options;
  }
  else {
    if ((
options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) || options.position) {
      
marker this.createMarker(options);
    }
    else {
      throw 
'No latitude or longitude defined.';
    }
  }

  
marker.setMap(this.map);

  if(
this.markerClusterer) {
    
this.markerClusterer.addMarker(marker);
  }

  
this.markers.push(marker);

  
GMaps.fire('marker_added'markerthis);

  return 
marker;
};

GMaps.prototype.addMarkers = function(array) {
  for (var 
0markermarker=array[i]; i++) {
    
this.addMarker(marker);
  }

  return 
this.markers;
};

GMaps.prototype.hideInfoWindows = function() {
  for (var 
0markermarker this.markers[i]; i++){
    if (
marker.infoWindow){
      
marker.infoWindow.close();
    }
  }
};

GMaps.prototype.removeMarker = function(marker) {
  for (var 
0this.markers.lengthi++) {
    if (
this.markers[i] === marker) {
      
this.markers[i].setMap(null);
      
this.markers.splice(i1);

      
GMaps.fire('marker_removed'markerthis);

      break;
    }
  }

  return 
marker;
};

GMaps.prototype.removeMarkers = function(collection) {
  var 
collection = (collection || this.markers);

  for (var 
0;this.markers.lengthi++) {
    if(
this.markers[i] === collection[i]) {
      
this.markers[i].setMap(null);
    }
  }

  var 
new_markers = [];

  for (var 
0;this.markers.lengthi++) {
    if(
this.markers[i].getMap() != null) {
      
new_markers.push(this.markers[i]);
    }
  }

  
this.markers new_markers;
};
?>
Онлайн: 0
Реклама