Вход Регистрация
Файл: upload/module/event/static/jscript/map.js
Строк: 170
<?php
var oMarker;
var 
oGeoCoder;
var 
sQueryAddress;
var 
oMap;
var 
oLatLng;
var 
bDoTrigger false;
/* This function takes the information from the input fields and moves the map towards that location*/
function inputToMap()
{
    var 
sQueryAddress = $('#address').val() + ' ' + $('#postal_code').val() + ' ' + $('#city').val();
    if ($(
'#js_country_child_id_value option:selected').val() > 0)
    {
        
sQueryAddress += ' ' + $('#js_country_child_id_value option:selected').text();

        
//$.ajaxCall('core.getChildre','country_iso=' + $('#country_iso option:selected').val());
    
}
    
sQueryAddress += ' ' + $('#country_iso option:selected').text();
    
debug ('Searching for: ' sQueryAddress);
    
oGeoCoder.geocode({
        
'address'sQueryAddress
        
}, function(resultsstatus)
        {
            if (
status == google.maps.GeocoderStatus.OK)
            {
                
oLatLng = new google.maps.LatLng(results[0].geometry.location.lat(),results[0].geometry.location.lng());
                
oMarker.setPosition(oLatLng);
                
oMap.panTo(oLatLng);
                $(
'#input_gmap_latitude').val(oMarker.position.lat());
                $(
'#input_gmap_longitude').val(oMarker.position.lng());
            }
        }
    );
    if (
bDoTrigger)
    {
        
google.maps.event.trigger(oMarker'dragend');
        
bDoTrigger false;
    }
}

function 
initialize()
{
    
oGeoCoder = new google.maps.Geocoder();
    
oLatLng = new google.maps.LatLng(aInfo.latitudeaInfo.longitude);
    
    var 
myOptions = {
        
zoom11,
        
centeroLatLng,
        
mapTypeIdgoogle.maps.MapTypeId.ROADMAP,
        
mapTypeControlfalse,
        
streetViewControlfalse
    
}
    
oMap = new google.maps.Map(document.getElementById("mapHolder"), myOptions);
    
oMarker = new google.maps.Marker({
        
draggabletrue,
        
positionoLatLng,
        
mapoMap
    
});

    
    
/* Fake the dragend to populate the city and other input fields */
    
google.maps.event.trigger(oMarker'dragstart');
    
google.maps.event.trigger(oMarker'dragend');
    
google.maps.event.addListener(oMarker"dragend", function()
    {
        
debug('drag end');
        $(
'#input_gmap_latitude').val(oMarker.position.lat());
        $(
'#input_gmap_longitude').val(oMarker.position.lng());
        
oLatLng = new google.maps.LatLng(oMarker.position.lat(), oMarker.position.lng());
        
oGeoCoder.geocode({
            
'latLng'oLatLng
        
},
        function(
resultsstatus)
        {
            if (
status == google.maps.GeocoderStatus.OK)
            {
                $(
'#city').val('');
                $(
'#postal_code').val('');
                
//debug (results[0]);
                
for (var i in results[0]['address_components'])
                {
                    if (
results[0]['address_components'][i]['types'][0] == 'locality')
                    {
                        $(
'#city').val(results[0]['address_components'][i]['long_name']);
                    }
                    if (
results[0]['address_components'][i]['types'][0] == 'country')
                    {
                        var 
sCountry = $('#country_iso option:selected').val();
                        $(
'#js_country_iso_option_'+results[0]['address_components'][i]['short_name']).attr('selected','selected');
                        if (
sCountry != $('#country_iso option:selected').val())
                        {
                            $(
'#country_iso').change();
                        }
                    }
                    if (
results[0]['address_components'][i]['types'][0] == 'postal_code')
                    {
                        $(
'#postal_code').val(results[0]['address_components'][i]['long_name']);
                    }
                    if (
results[0]['address_components'][i]['types'][0] == 'street_address')
                    {
                        $(
'#address').val(results[0]['address_components'][i]['long_name']);
                    }
                    if (isset($(
'#js_country_child_id_value')) && results[0]['address_components'][i]['types'][0] == 'administrative_area_level_1')
                    {
                        $(
'#js_country_child_id_value option').each(function(){
                            if ($(
this).text() == results[0]['address_components'][i]['long_name'])
                            {
                                $(
this).attr('selected','selected');
                                
bHasChanged true;
                            }
                        });
                    }                    
                }
            }
        });
    });
    
/* Sets events for when the user inputs info */
    
inputToMap();
}

function 
loadScript()
{
    var 
script document.createElement('script');
    
script.type'text/javascript';
    
script.src 'http://maps.google.com/maps/api/js?sensor=false&callback=initialize';
    
document.body.appendChild(script);
}


$(
document).ready(function(){
    $(
'#js_country_child_id_value').change(function(){
        
debug("Cleaning  city, postal_code and address");
        $(
'#city').val('');
        $(
'#postal_code').val('');
        $(
'#address').val('');
    });
    $(
'#country_iso, #js_country_child_id_value').change(inputToMap);
    $(
'#address, #postal_code, #city').blur(inputToMap);    
    
loadScript();
});
?>
Онлайн: 1
Реклама