Function Reference: geodir_location_autofill_address

Summary

Adds js to autofill the address.

Global Values

$post
(object) (required) The current post object.

Default: None

Package

GeoDirectory_Location_Manager

Parameters

$prefix
(string) (required) The prefix for all elements.

Default: None

Change Log

Since: 1.0.0

Source File

geodir_location_autofill_address() is located in geodir_location_manager/geodir_location_hooks_actions.php [Line: 2595]

Source Code

function geodir_location_autofill_address($prefix='')
{
	
	global $pagenow,$post;
	$add_google_places_api = false;
	if(isset($post->post_content) && has_shortcode( $post->post_content, 'gd_add_listing' ) ) {$add_google_places_api = true;}
	
	if(((is_page() && get_query_var('page_id') == get_option( 'geodir_add_listing_page' ) ))|| ($add_google_places_api) || (is_admin() && ( $pagenow == 'post.php'  || isset($_REQUEST['post_type'])))){
	
	if(get_option('location_address_fill')){}else{?>
jQuery(function(){
initialize_autofill_address();
});

        
var placeSearch, autocomplete;
var componentForm = {
  street_number: 'short_name',
  route: 'long_name',
  locality: 'long_name',
  administrative_area_level_1: 'short_name',
  country: 'long_name',
  postal_code: 'short_name'
};

function initialize_autofill_address() {
  // Create the autocomplete object, restricting the search
  // to geographical location types.
  autocomplete = new google.maps.places.Autocomplete(
      /** @type {HTMLInputElement} */(document.getElementById('')),
      { types: ['geocode'] });
  // When the user selects an address from the dropdown,
  // populate the address fields in the form.
  google.maps.event.addListener(autocomplete, 'place_changed', function() {
    fillInAddress();
  });
}

// [START region_fillform]
function fillInAddress() {
// Get the place details from the autocomplete object.
var place = autocomplete.getPlace();

//blank feilds
jQuery('# option[value=""]').attr("selected",true);
jQuery("#").trigger("chosen:updated");

jQuery("#").append('');
jQuery('# option[value=""]').attr("selected",true);
jQuery("#").trigger("chosen:updated");
					
jQuery("#").append('');
jQuery('# option[value=""]').attr("selected",true);
jQuery("#").trigger("chosen:updated");

jQuery('#').val('');

var newArr = new Array();
newArr[0] = place;
geocodeResponse(newArr);
geodir_codeAddress(true);

if(place.name){jQuery('#').val(place.name);}
  // Get each component of the address from the place details
  // and fill the corresponding field on the form.
 /* for (var i = 0; i < place.address_components.length; i++) {
    var addressType = place.address_components[i].types[0];
    if (componentForm[addressType]) {
      var val = place.address_components[i][componentForm[addressType]];
      document.getElementById(addressType).value = val;
    }
  }*/
}
// [END region_fillform]

// [START region_geolocation]
// Bias the autocomplete object to the user's geographical location,
// as supplied by the browser's 'navigator.geolocation' object.
/*function geolocate() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
      var geolocation = new google.maps.LatLng(
          position.coords.latitude, position.coords.longitude);
      autocomplete.setBounds(new google.maps.LatLngBounds(geolocation,
          geolocation));
    });
  }
}*/
// [END region_geolocation]