【发布时间】:2019-10-24 17:20:54
【问题描述】:
我有一个带有标记的谷歌地图和一个带有包含地点的选项的选择。当用户选择一个选项时,从 ajax 成功请求中加载纬度和经度,最后谷歌地图上的标记必须改变位置。
这是地图的脚本:
function initSubmitMap(_latitude,_longitude){
var mapCenter = new google.maps.LatLng(_latitude,_longitude);
var mapOptions = {
zoom: 7,
scrollwheel: false,
center: mapCenter,
disableDefaultUI: false,
//scrollwheel: false,
styles: mapStyles
};
var mapElement = document.getElementById('submit-map');
var map = new google.maps.Map(mapElement, mapOptions);
var marker = new MarkerWithLabel({
position: mapCenter,
map: map,
icon: 'assets/images/marker.png',
labelAnchor: new google.maps.Point(50, 0),
draggable: true
});
$('#submit-map').removeClass('fade-map');
google.maps.event.addListener(marker, "mouseup", function (event) {
var latitude = this.position.lat();
var longitude = this.position.lng();
$('#latitude').val( this.position.lat() );
$('#longitude').val( this.position.lng() );
});
/*google.maps.event.addDomListener(window, 'load', initialize);*/
//Autocomplete
var input = /** @type {HTMLInputElement} */( document.getElementById('address-map') );
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.bindTo('bounds', map);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
if (!place.geometry) {
return;
}
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(17);
}
marker.setPosition(place.geometry.location);
marker.setVisible(true);
$('#latitude').val( marker.getPosition().lat() );
$('#longitude').val( marker.getPosition().lng() );
var address = '';
if (place.address_components) {
address = [
(place.address_components[0] && place.address_components[0].short_name || ''),
(place.address_components[1] && place.address_components[1].short_name || ''),
(place.address_components[2] && place.address_components[2].short_name || '')
].join(' ');
}
});
}
function newLocation(newLat,newLng)
{
map.setCenter({
lat : newLat,
lng : newLng
});
}
这是 ajax 请求的脚本:
$('select[name=governorat_id]').mouseup(function() {
var id = $(this).val();
$.ajax({
type: 'get',
url: "{{ URL::to('claim-gov-pos') }}",
data: {
'id': id
},
success:function(data){
$("#latitude").val(data.lat);
$("#longitude").val(data.lon);
newLocation(parseFloat(data.lat),parseFloat(data.lon))
}
});
});
我得到错误地图未在函数 newLocation 中定义。
【问题讨论】:
标签: javascript laravel google-maps