Autocompleted Address breakdown into multiple fields

Mehr
1 Woche 1 Tag her #171234 von davidg1982
davidg1982 erstellte das Thema Autocompleted Address breakdown into multiple fields
Good day all.

I have an address field were it is going to be autocompleted by google maps API, but I'd like to know how I can take the address and have them feed indivdual fields. As in, have the street address go to the street address field in the DB and have the zip code go to the zip code field in the DB for each survey response.

The end goal is to make this easier to slice and dice the data later on without much modification on the backend. Basically trying to get the data organized the way we want as it goes in.

Can I do this? How is it done? I am trying to find an easy answer for my web dev person.

Thanks!

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
1 Woche 19 Stunden her #171243 von Joffm
Joffm antwortete auf das Thema: Autocompleted Address breakdown into multiple fields
Hi,

you can use some equations with functions "strpos" and "substr" to find the delimiters between the parts of the address and then get the part with "substr".

How does this string look like? How do you want to split exactly? Please, give an example.

Best regards
Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
1 Woche 15 Stunden her #171253 von tpartner
tpartner antwortete auf das Thema: Autocompleted Address breakdown into multiple fields
How are you implementing the address look-up? If using the reverse Geocoding API, the returned "formatted_address" string may not always be structured the same - from the documentation: "The "formatted_address" results are not just postal addresses, but any way to geographically name a location.". Due to this, it may not be safe to parse the string with Expression Manager. You might want to access the elements of the returned "address_components" array directly.

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
1 Woche 2 Stunden her #171269 von davidg1982
davidg1982 antwortete auf das Thema: Autocompleted Address breakdown into multiple fields
Right now I am implementing it through a JS script based on advice from Google , but I am trying to figure out how to have the autocomplete fill in multiple fields, like in the example, then fill contact details, like city, state, etc. The manual, from my perspective, is not clear as how to achieve that.
I would appreciate something in the right direction.

Here is the code of the question. It's basic. I've removed my API key for security reasons.
<p><script src="https://maps.googleapis.com/maps/api/js?key=[APIKEY]&libraries=places"></script><script src="jquery.geocomplete.js"></script>Please enter your address.</p>
 
<p>powered by Google</p>
 
<p id="displayCounty"> </p>
<script>
  function init() {
    $('#displayCounty').hide();
    var input = document.getElementById('answer161767X10X131');
    var autocomplete = new google.maps.places.Autocomplete(input);
 
    autocomplete.addListener('place_changed', function() {
      var place = autocomplete.getPlace();
      var components = place.address_components;
      if (components) {
        for (var i = 0, l = components.length; i < l; i++) {
          var component = components[i];
          if (component.types &&
              component.types.indexOf('administrative_area_level_2') !== -1) {
            $('#displayCounty').text('County: ' + component.long_name);
            $('#displayCounty').show();
          }
        }
      }
    });
  }
  google.maps.event.addDomListener(window, 'load', init);
</script>

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
6 Tage 14 Stunden her #171275 von tpartner
tpartner antwortete auf das Thema: Autocompleted Address breakdown into multiple fields
Can you attach a small sample survey.

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
4 Tage 10 Stunden her #171338 von davidg1982
davidg1982 antwortete auf das Thema: Autocompleted Address breakdown into multiple fields
This should be it.
Anhang:

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
3 Tage 12 Stunden her #171376 von tpartner
tpartner antwortete auf das Thema: Autocompleted Address breakdown into multiple fields
I would add sub-questions for all of the address components and use a script like this (replace YourAPIKey with a valid key):

<script src="https://maps.googleapis.com/maps/api/js?key=YourAPIKey&libraries=places"></script><script src="jquery.geocomplete.js"></script>
<script>
	function init() {
		$('#displayCounty').hide();
 
		// Disable the partial-address inputs
		$('#question{QID} input:text:gt(0)').prop('readonly', true);
 
		// Un-comment below to hide the partial-address inputs
		//$('#question{QID} input:text:gt(0)').hide();
 
		var input = document.getElementById('answer{SID}X{GID}X{QID}SQ001');
		var autocomplete = new google.maps.places.Autocomplete(input);
 
		autocomplete.addListener('place_changed', function() {
			var place = autocomplete.getPlace();
			var components = place.address_components;
			if (components) {
				for (var i = 0, l = components.length; i < l; i++) {
					var component = components[i];
					if (component.types && component.types.indexOf('street_number') !== -1) {
						$('#answer{SID}X{GID}X{QID}SQ002').val(component.long_name);
					}
					if (component.types && component.types.indexOf('route') !== -1) {
						$('#answer{SID}X{GID}X{QID}SQ003').val(component.long_name);
					}
					if (component.types && component.types.indexOf('locality') !== -1) {
						$('#answer{SID}X{GID}X{QID}SQ004').val(component.long_name);
					}
					if (component.types && component.types.indexOf('administrative_area_level_2') !== -1) {
						$('#displayCounty').text('County: ' + component.long_name);
						$('#displayCounty').show();
						$('#answer{SID}X{GID}X{QID}SQ005').val(component.long_name);
					}
					if (component.types && component.types.indexOf('administrative_area_level_1') !== -1) {
						$('#answer{SID}X{GID}X{QID}SQ006').val(component.long_name);
					}
					if (component.types && component.types.indexOf('country') !== -1) {
						$('#answer{SID}X{GID}X{QID}SQ007').val(component.long_name);
					}
					if (component.types && component.types.indexOf('postal_code') !== -1) {
						$('#answer{SID}X{GID}X{QID}SQ008').val(component.long_name);
					}
				}
			}
		});
	}
	google.maps.event.addDomListener(window, 'load', init);
</script>



Sample survey (you will need to insert a valid API key in the src of the first script):

Dateianhang:

Dateiname: limesurvey...7671.lss
Dateigröße:30 KB

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Anhang:
Folgende Benutzer bedankten sich: davidg1982

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Mehr
1 Tag 6 Stunden her #171502 von davidg1982
davidg1982 antwortete auf das Thema: Autocompleted Address breakdown into multiple fields
This worked! Great! Thank you for your help.

Bitte Anmelden oder Registrieren um an der Konversation teilzunehmen.

Jetzt loslegen!

Melden Sie sich jetzt an, und erstellen Sie in wenigen Minuten Ihre erste Umfrage.

Account einrichten

Abonnieren Sie unseren Newsletter

Abonnieren Sie unseren Newsletter für alle Neuigkeiten rund um LimeSurvey
captcha