
Credit goes to mike8643! https: //github.com/mike8643 Co-Authored-By: mike8643 <98910897+mike8643@users.noreply.github.com>
65 lines
2.4 KiB
HTML
65 lines
2.4 KiB
HTML
{% block main %}
|
|
<!-- Your form markup -->
|
|
<form name="searchForm" method="post">
|
|
<fieldset class="uk-fieldset">
|
|
<div class="uk-margin">
|
|
{% if home or work or fav1 or fav2 or fav3 %}
|
|
<select class="uk-select" name="fav_val">
|
|
<option value="favorites">Select Saved Destinations</option>
|
|
{% if home %} <option value="home">Home: {{home}}</option> {% endif %}
|
|
{% if work %} <option value="work">Work: {{work}}</option> {% endif %}
|
|
{% if fav1 %} <option value="fav1">Favorite 1: {{fav1}}</option> {% endif %}
|
|
{% if fav2 %} <option value="fav2">Favorite 2: {{fav2}}</option> {% endif %}
|
|
{% if fav3 %} <option value="fav3">Favorite 3: {{fav3}}</option> {% endif %}
|
|
</select>
|
|
{% endif %}
|
|
<input class="uk-input" type="text" name="addr_val" id="pac-input" placeholder="Search a place">
|
|
<input class="uk-button uk-button-primary uk-width-1-1 uk-margin-small-bottom" type="submit" value="Search">
|
|
</div>
|
|
</fieldset>
|
|
</form>
|
|
<!-- Include the Google Maps Places API script conditionally with JavaScript -->
|
|
<script>
|
|
// attach gmap_key to variable
|
|
let gmap = "{{gmap_key}}";
|
|
|
|
// Check if gmap_key is defined
|
|
if (gmap && gmap !== "None") {
|
|
var script = document.createElement('script');
|
|
script.src = 'https://maps.googleapis.com/maps/api/js?key={{gmap_key}}&libraries=places&callback=initAutocomplete';
|
|
script.async = true;
|
|
script.defer = true;
|
|
document.head.appendChild(script);
|
|
|
|
// Define the callback function for place_changed
|
|
function onPlaceChanged() {
|
|
var place = autocomplete.getPlace();
|
|
|
|
// Check if the place has a formatted address
|
|
if (place.formatted_address) {
|
|
// Set the value of the input field to the formatted address
|
|
document.getElementById('pac-input').value = place.formatted_address;
|
|
}
|
|
}
|
|
|
|
// Define the autocomplete variable
|
|
var autocomplete;
|
|
|
|
// Define the initAutocomplete function with initial bounds
|
|
function initAutocomplete() {
|
|
var center = new google.maps.LatLng({{lat}}, {{lon}});
|
|
var bounds = new google.maps.Circle({ center: center, radius: 5000 }).getBounds();
|
|
|
|
autocomplete = new google.maps.places.Autocomplete(
|
|
document.getElementById('pac-input'),
|
|
{
|
|
bounds: bounds // Set initial bounds here
|
|
}
|
|
);
|
|
|
|
autocomplete.addListener('place_changed', onPlaceChanged);
|
|
}
|
|
}
|
|
</script>
|
|
{% endblock %}
|