/*! * jQuery UI Google Map 3.0-rc * http://code.google.com/p/jquery-ui-map/ * Copyright (c) 2010 - 2012 Johan Säll Larsson * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php * * Depends: * jquery.ui.map.js */ ( function($) { $.extend($.ui.gmap.prototype, { /** * Computes directions between two or more places. * @param directionsRequest:google.maps.DirectionsRequest * @param directionsRendererOptions:google.maps.DirectionsRendererOptions (optional) * @param callback:function(result:google.maps.DirectionsResult, status:google.maps.DirectionsStatus) * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#DirectionsRequest * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#DirectionsRendererOptions * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#DirectionsResult */ displayDirections: function(directionsRequest, directionsRendererOptions, callback) { var self = this; var directionService = this.get('services > DirectionsService', new google.maps.DirectionsService()); var directionRenderer = this.get('services > DirectionsRenderer', new google.maps.DirectionsRenderer()); if ( directionsRendererOptions ) { directionRenderer.setOptions(directionsRendererOptions); } directionService.route(directionsRequest, function(results, status) { if ( status === 'OK' ) { directionRenderer.setDirections(results); directionRenderer.setMap(self.get('map')); } else { directionRenderer.setMap(null); } callback(results, status); }); }, /** * Displays the panorama for a given LatLng or panorama ID. * @param panel:jQuery/String/Node * @param streetViewPanoramaOptions:google.maps.StreetViewPanoramaOptions (optional) * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#StreetViewPanoramaOptions */ displayStreetView: function(panel, streetViewPanoramaOptions) { this.get('map').setStreetView(this.get('services > StreetViewPanorama', new google.maps.StreetViewPanorama(this._unwrap(panel), streetViewPanoramaOptions))); }, /** * A service for converting between an address and a LatLng. * @param geocoderRequest:google.maps.GeocoderRequest * @param callback:function(result:google.maps.GeocoderResult, status:google.maps.GeocoderStatus), * @see http://code.google.com/intl/sv-SE/apis/maps/documentation/javascript/reference.html#GeocoderResult */ search: function(geocoderRequest, callback) { this.get('services > Geocoder', new google.maps.Geocoder()).geocode(geocoderRequest, callback); } }); } (jQuery) );