0byt3m1n1
Path:
/
var
/
lib
/
vz
/
www
/
clients
/
client6
/
web11
/
web
/
wp-content
/
plugins
/
wp-google-maps
/
js
/
v8
/
[
Home
]
File: latlngbounds.js
/** * @namespace WPGMZA * @module LatLngBounds * @requires WPGMZA */ jQuery(function($) { /** * This class represents latitude and longitude bounds as a rectangular area. * NB: This class is not fully implemented * @class WPGMZA.LatLngBounds * @constructor WPGMZA.LatLngBounds * @memberof WPGMZA */ WPGMZA.LatLngBounds = function(southWest, northEast) { //console.log("Created bounds", southWest, northEast); if(southWest && northEast) { // TODO: Add checks and errors this.south = southWest.lat; this.north = northEast.lat; this.west = southWest.lng; this.east = southWest.lng; } } /** * Returns true if this object is in it's initial state (eg no points specified to gather bounds from) * @method * @memberof WPGMZA.LatLngBounds * @return {bool} True if the object is in it's initial state */ WPGMZA.LatLngBounds.prototype.isInInitialState = function() { return (this.north == undefined && this.south == undefined && this.west == undefined && this.east == undefined); } /** * Extends this bounds object to encompass the given latitude and longitude coordinates * @method * @memberof WPGMZA.LatLngBounds * @param {object|WPGMZA.LatLng} latLng either a LatLng literal or an instance of WPGMZA.LatLng */ WPGMZA.LatLngBounds.prototype.extend = function(latLng) { if(!(latLng instanceof WPGMZA.LatLng)) latLng = new WPGMZA.LatLng(latLng); //console.log("Expanding bounds to " + latLng.toString()); if(this.isInInitialState()) { this.north = this.south = latLng.lat; this.west = this.east = latLng.lng; return; } if(latLng.lat < this.north) this.north = latLng.lat; if(latLng.lat > this.south) this.south = latLng.lat; if(latLng.lng < this.west) this.west = latLng.lng; if(latLng.lng > this.east) this.east = latLng.lng; } WPGMZA.LatLngBounds.prototype.extendByPixelMargin = function(map, x, arg) { var y = x; if(!(map instanceof WPGMZA.Map)) throw new Error("First argument must be an instance of WPGMZA.Map"); if(this.isInInitialState()) throw new Error("Cannot extend by pixels in initial state"); if(arguments.length >= 3) y = arg; var southWest = new WPGMZA.LatLng(this.south, this.west); var northEast = new WPGMZA.LatLng(this.north, this.east); southWest = map.latLngToPixels(southWest); northEast = map.latLngToPixels(northEast); southWest.x -= x; southWest.y += y; northEast.x += x; northEast.y -= y; southWest = map.pixelsToLatLng(southWest.x, southWest.y); northEast = map.pixelsToLatLng(northEast.x, northEast.y); var temp = this.toString(); this.north = northEast.lat; this.south = southWest.lat; this.west = southWest.lng; this.east = northEast.lng; //console.log("Extended", temp, "to", this.toString()); } WPGMZA.LatLngBounds.prototype.contains = function(latLng) { //console.log("Checking if latLng ", latLng, " is within bounds " + this.toString()); if(!(latLng instanceof WPGMZA.LatLng)) throw new Error("Argument must be an instance of WPGMZA.LatLng"); if(latLng.lat < Math.min(this.north, this.south)) return false; if(latLng.lat > Math.max(this.north, this.south)) return false; if(this.west < this.east) return (latLng.lng >= this.west && latLng.lng <= this.east); if(this.west < this.east) return (latLng.lng >= this.west || this.lng <= this.east); return (latLng.lng <= this.west || this.lng >= this.east); } WPGMZA.LatLngBounds.prototype.toString = function() { return this.north + "N " + this.south + "S " + this.west + "W " + this.east + "E"; } });