93 lines
3.2 KiB
JavaScript
93 lines
3.2 KiB
JavaScript
|
'use strict';
|
||
|
jQuery(document).ready(function($) {
|
||
|
var map;
|
||
|
var geocoder = new google.maps.Geocoder();
|
||
|
var markers = [];
|
||
|
var iterator = 0;
|
||
|
var berlin = new google.maps.LatLng(52.520816, 13.410186),
|
||
|
stockholm = new google.maps.LatLng(59.32522, 18.07002);
|
||
|
var neighborhoods = [new google.maps.LatLng(52.511467, 13.447179), new google.maps.LatLng(52.549061, 13.422975), new google.maps.LatLng(52.497622, 13.396110), new google.maps.LatLng(52.517683, 13.394393), new google.maps.LatLng(52.530843, 13.382721), new google.maps.LatLng(52.514549, 13.350105), new google.maps.LatLng(52.534394, 13.340492), ];
|
||
|
|
||
|
function initialize() {
|
||
|
var mapOptions = {
|
||
|
zoom: 12,
|
||
|
center: berlin
|
||
|
};
|
||
|
var el = document.getElementById('map-1'),
|
||
|
doc_height = $(document).height() - 10 -
|
||
|
$(".main-content > .user-info-navbar").outerHeight() -
|
||
|
$(".main-content > .page-title").outerHeight() -
|
||
|
$(".google-map-env .map-toolbar").outerHeight();
|
||
|
el.style.height = doc_height + 'px';
|
||
|
map = new google.maps.Map(el, mapOptions);
|
||
|
for (var i = 0; i < neighborhoods.length; i++) {
|
||
|
setTimeout(function() {
|
||
|
addMarker();
|
||
|
}, i * 200 + 200);
|
||
|
}
|
||
|
new google.maps.Marker({
|
||
|
map: map,
|
||
|
position: stockholm,
|
||
|
draggable: true
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function addMarker() {
|
||
|
markers.push(new google.maps.Marker({
|
||
|
position: neighborhoods[iterator],
|
||
|
map: map,
|
||
|
draggable: true,
|
||
|
animation: google.maps.Animation.DROP
|
||
|
}));
|
||
|
iterator++;
|
||
|
}
|
||
|
google.maps.event.addDomListener(window, 'load', initialize);
|
||
|
// [ go-sthlm ]
|
||
|
$("#go-sthlm").on('click', function(ev) {
|
||
|
ev.preventDefault();
|
||
|
map.panTo(stockholm);
|
||
|
});
|
||
|
// [ go-bln ]
|
||
|
$("#go-bln").on('click', function(ev) {
|
||
|
ev.preventDefault();
|
||
|
map.panTo(berlin);
|
||
|
});
|
||
|
// [ map-unzoom ]
|
||
|
$("#map-unzoom").on('click', function(ev) {
|
||
|
ev.preventDefault();
|
||
|
map.setZoom(map.getZoom() - 1);
|
||
|
});
|
||
|
// [ map-resetzoom ]
|
||
|
$("#map-resetzoom").on('click', function(ev) {
|
||
|
ev.preventDefault();
|
||
|
map.setZoom(12);
|
||
|
});
|
||
|
// [ map-zoom ]
|
||
|
$("#map-zoom").on('click', function(ev) {
|
||
|
ev.preventDefault();
|
||
|
map.setZoom(map.getZoom() + 1);
|
||
|
});
|
||
|
// [ address-search ]
|
||
|
$("#address-search").submit(function(ev) {
|
||
|
ev.preventDefault();
|
||
|
var $inp = $(this).find('.form-control'),
|
||
|
address = $inp.val().trim();
|
||
|
if (address.length != 0) {
|
||
|
geocoder.geocode({
|
||
|
'address': address
|
||
|
}, function(results, status) {
|
||
|
if (status == google.maps.GeocoderStatus.OK) {
|
||
|
map.setCenter(results[0].geometry.location);
|
||
|
var marker = new google.maps.Marker({
|
||
|
map: map,
|
||
|
position: results[0].geometry.location,
|
||
|
draggable: true
|
||
|
});
|
||
|
} else {
|
||
|
alert('Geocode was not successful for the following reason: ' + status);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
});
|