Панель управления сверстанная и с встроенным jQuery.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

162 lines
4.6 KiB

/* ------------------------------------------------------------------------------
*
* # Location pickers
*
* Specific JS code additions for picker_location.html page
*
* Version: 1.1
* Latest update: Aug 10, 2016
*
* ---------------------------------------------------------------------------- */
$(function() {
// Basic examples
// ------------------------------
// Basic functionality
$('.locationpicker-default').locationpicker({
radius: 150,
scrollwheel: false,
zoom: 10
});
// Manipulating from callback
$('.locationpicker-manipulate').locationpicker({
location: {
latitude: 46.15242437752303,
longitude: 2.7470703125
},
radius: 300,
onchanged: function(currentLocation, radius, isMarkerDropped) {
var mapContext = $(this).locationpicker('map');
mapContext.map.setZoom(20);
}
});
// Binding UI with the widget
$('#us2').locationpicker({
location: {latitude: 44.1219256, longitude: 15.2357175},
radius: 300,
scrollwheel: false,
inputBinding: {
latitudeInput: $('#us2-lat'),
longitudeInput: $('#us2-lon'),
radiusInput: $('#us2-radius'),
locationNameInput: $('#us2-address')
}
});
// Subscribing for events
$('#us3').locationpicker({
location: {latitude: 47.494293, longitude: 19.054151899999965},
radius: 300,
scrollwheel: false,
inputBinding: {
latitudeInput: $('#us3-lat'),
longitudeInput: $('#us3-lon'),
radiusInput: $('#us3-radius'),
locationNameInput: $('#us3-address')
},
enableAutocomplete: true,
onchanged: function(currentLocation, radius, isMarkerDropped) {
alert("Location changed. New location (" + currentLocation.latitude + ", " + currentLocation.longitude + ")");
}
});
//
// Typeahead address picker
//
// Instantiate the addressPicker suggestion engine (based on bloodhound)
var addressPicker = new AddressPicker({
map: {
id: '#map',
scrollwheel: false,
zoom: 10,
center: new google.maps.LatLng(53.5510846, 9.99368179999999)
},
reverseGeocoding: true,
autocompleteService: {
types: ['(cities)'],
componentRestrictions: {
country: 'DE'
}
}
});
// Instantiate the typeahead UI
$('#address').typeahead(null, {
displayKey: 'description',
limit: 20,
source: addressPicker.ttAdapter()
});
// Bind event
addressPicker.bindDefaultTypeaheadEvent($('#address'));
// When address is selected
$(addressPicker).on('addresspicker:selected', function (event, result) {
Prism.highlightAll();
html = ["Address: " + result.address()]
html.push("Latitude: " + result.lat())
html.push("Longitude: " + result.lng())
html.push("Long names:")
result.addressTypes().forEach(function(type) {
html.push(" " + type + ": " + result.nameForType(type))
});
html.push("Short names:")
result.addressTypes().forEach(function(type) {
html.push(" " + type + ": " + result.nameForType(type, true))
});
$('#response code').html( html.join('\n'));
});
//
// Autocomplete address picker
//
// Initialization
var addresspickerMap = $("#addresspicker_map").addresspicker({
regionBias: "fr",
updateCallback: showCallback,
mapOptions: {
zoom: 10,
center: new google.maps.LatLng(48.856614, 2.3522219000000177),
scrollwheel: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
},
elements: {
map: "#map2"
}
});
// Add markers
var gmarker = addresspickerMap.addresspicker("marker");
gmarker.setVisible(true);
addresspickerMap.addresspicker("updatePosition");
// Reverse Geocode after Marker Drag
$('#reverseGeocode').change(function(){
$("#addresspicker_map").addresspicker("option", "reverseGeocode", ($(this).val() === 'true'));
});
// Callback
function showCallback(geocodeResult, parsedGeocodeResult){
$('#response2 code').text(JSON.stringify(parsedGeocodeResult, null, 4));
Prism.highlightAll();
}
// Update zoom field
var map = $("#addresspicker_map").addresspicker("map");
google.maps.event.addListener(map, 'idle', function(){
$('#zoom').val(map.getZoom());
});
});