kodgemisi/confdeck

View on GitHub
app/assets/javascripts/gmaps.js

Summary

Maintainability
A
2 hrs
Test Coverage
function initialize() {

    var markers = [];
    if(document.getElementById('map-canvas')){

        if($('#map_lat').val() != "" && $('#map_lon').val() != ""){
            var center_coord = new google.maps.LatLng($('#map_lat').val(), $('#map_lon').val());
            var zoom = 8;
        }else{
            var center_coord = new google.maps.LatLng(41.005811774870615, 28.96820068359375);
            var zoom = 3;
        }


        window.map = new google.maps.Map(document.getElementById('map-canvas'), {
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            center: center_coord ,
            zoom: zoom
        });


        window.markermap = new google.maps.Marker({
            position: center_coord,
            map: map,
            title: ""
        });

        google.maps.event.addListener(map, "click", function (event) {
            if (markermap) {
                markermap.setMap(null);
            }

            markermap = new google.maps.Marker({
                position: event.latLng,
                map: map,
                title: ""
            });
        });


        // Create the search box and link it to the UI element.
        var input = document.getElementById('target');
        var searchBox = new google.maps.places.SearchBox(input);

        google.maps.event.addListener(map, 'click', function (event) {
            var myLatLng = event.latLng;
            var lat = myLatLng.lat();
            var lng = myLatLng.lng();

            $('#map_lat').val(lat);
            $('#map_lon').val(lng);
        })


        // [START region_getplaces]
        // Listen for the event fired when the user selects an item from the
        // pick list. Retrieve the matching places for that item.
        google.maps.event.addListener(searchBox, 'places_changed', function () {
            var places = searchBox.getPlaces();

            for (var i = 0, marker; marker = markers[i]; i++) {
                marker.setMap(null);
            }

            // For each place, get the icon, place name, and location.
            var bounds = new google.maps.LatLngBounds();

            place = places[0];
            bounds.extend(place.geometry.location);

            map.fitBounds(bounds);
            map.setZoom(10)

        });
        // [END region_getplaces]

        // Bias the SearchBox results towards places that are within the bounds of the
        // current map's viewport.
        google.maps.event.addListener(map, 'bounds_changed', function () {
            var bounds = map.getBounds();
            searchBox.setBounds(bounds);
        });
    }
}

google.maps.event.addDomListener(window, 'load', initialize);