Управление отображением mapbox из внешней формы

#javascript #forms #autocomplete #mapbox

#javascript #формы #автозаполнение #mapbox

Вопрос:

У меня есть карта mapbox и независимая, визуально разделенная форма с полями ввода для страны, города, улицы. Во всех найденных мной примерах для определения местоположения на карте mapbox используется поле ввода с автозаполнением.

Это не то, что я хочу. Автоматическое позиционирование карты должно начаться только после того, как я нажму кнопку с onclick= …, связанную с этой формой, считывающей данные формы. Есть ли полный (!) Пример для этого?

Соответствующий HTML-код:

 <div id='map'></div>
<script>
mapboxgl.accessToken = 'pk.eyJ...';
var map = new mapboxgl.Map({
container: 'map', 
style: 'mapbox://styles/mapbox/streets-v11',
center: [8.54, 47.37],
zoom: 9 
</script>
<form id='mapform' >
<input id='country' value='ES'/>
<input id='city' value='Barcelona'/>
<input id=street' value='Carrer de Balmes'/>
</form>
<div class='button' onclick='locate();'>Locate</div>
 

и фрагмент скрипта JS, который должен быть завершен (реализован jQuery):

 function locate() {
  // you may suggest jQuery here:
  var wCountry = $("#mapform input[id=country]").val();
  var wCity = $("#mapform input[id=city]").val();
  var wStreet = $("#mapform input[id=street]").val();
  map.?????  
};
 

Комментарии:

1. new mapboxgl.Map У вас нет закрывающих скобок.

2. В вашей locate() функции вы должны каким-то образом преобразовать ввод формы (адрес) в координаты (широту и долготу). Вы можете использовать API геокодирования .