43 lines
1000 B
JavaScript
43 lines
1000 B
JavaScript
|
GMaps.geolocate = function(options) {
|
||
|
var complete_callback = options.always || options.complete;
|
||
|
|
||
|
if (navigator.geolocation) {
|
||
|
navigator.geolocation.getCurrentPosition(function(position) {
|
||
|
options.success(position);
|
||
|
|
||
|
if (complete_callback) {
|
||
|
complete_callback();
|
||
|
}
|
||
|
}, function(error) {
|
||
|
options.error(error);
|
||
|
|
||
|
if (complete_callback) {
|
||
|
complete_callback();
|
||
|
}
|
||
|
}, options.options);
|
||
|
}
|
||
|
else {
|
||
|
options.not_supported();
|
||
|
|
||
|
if (complete_callback) {
|
||
|
complete_callback();
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
GMaps.geocode = function(options) {
|
||
|
this.geocoder = new google.maps.Geocoder();
|
||
|
var callback = options.callback;
|
||
|
if (options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) {
|
||
|
options.latLng = new google.maps.LatLng(options.lat, options.lng);
|
||
|
}
|
||
|
|
||
|
delete options.lat;
|
||
|
delete options.lng;
|
||
|
delete options.callback;
|
||
|
|
||
|
this.geocoder.geocode(options, function(results, status) {
|
||
|
callback(results, status);
|
||
|
});
|
||
|
};
|