У меня есть страница HTML, как это:взаимодействия между картой Google и образуют входы
<button onclick="initMap()">Regenerate</button><BR>
Latitude<input style="width: 5em;" id="lat" name="lat" type="number" value="35.9000" step="0.1"/></div><BR>
Longitude<input style="width: 5em;" id="long" name="long" type="number" value="15.7500" step="0.1"/></div>
<div id="map"></div>
<script>
var map;
function initMap() {
var latitude = parseFloat ($('#lat').val());
var longitude = parseFloat ($('#long').val());
var mapOptions = {
zoom: 13,
center: new google.maps.LatLng(latitude, longitude),
mapTypeId: google.maps.MapTypeId.TERRAIN
};
map = new google.maps.Map(document.getElementById('map'), mapOptions);
}
$("#lat").change(function() {
placeMarkers();
});
$("#long").change(function() {
placeMarkers();
});
function placeMarkers() {
var latitude = parseFloat ($('#lat').val());
var longitude = parseFloat ($('#long').val());
var markerDep = new google.maps.Marker({
position: {lat: latitude, lng: longitude},
map: map,
label: "D",
draggable: true,
title: 'Departure'
});
var markerArr = new google.maps.Marker({
position: {lat: latitude+0.01, lng: longitude+0.01},
map: map,
label: "A",
draggable: true,
title: 'Arrival'
});
}
</script>
Я хотел бы сделать взаимодействие со значениями, указанными пользователем в форме и карте.
EDIT: частично решена, см выше код
Обновление карты каждый раз, когда пользователь нажимает/изменяет значение является немного «тяжелым». Итак, вместо вызова initMap() при каждом изменении ввода, я бы хотел только заменить маркеры? Но placeMarkers() не удается это сделать ... кроме первого раза (при загрузке). Другие времена, они создают новые маркеры ...
Первая проблема заключается широта и переменные долготы не заданы в функции initMap. – marekful
ooops да, они имели обыкновение, но я переместил их тогда! моя ошибка :(Обновлено – Fafanellu