用户必须在注册表单中选择他们的位置,我使用地方搜索框。
对于以后的应用程序,我需要精确的lat和lng,因为我需要一个可拖动的标记。
我提供了Plunker
尝试过各种各样的组合,如:
user = client.getAuthenticated().activeDirectoryUsers()
.getByName(uid.getUidValue());
user.update()
.withPassword(accessor.getPassword().toString())
.apply();
lat lng框不会在拖动时更新。听众被忽略了。
编辑附加信息:“markers”是我创建的标记的变量
#lat,#lng是隐藏输入字段的id。
EDIT2:我从plunker中清除了我的整个代码,只为此问题提供了必要的代码:
google.maps.event.addListener(markers, 'dragend', function (event) {
document.getElementById("lat").value = event.latLng.lat();
document.getElementById("lng").value = event.latLng.lng();
$('#lat').val(event.latLng.lat()) ;
$('#lng').val(event.latLng.lng()) ;
});
答案 0 :(得分:1)
您好您可以在代码中使用places_changed事件,
google.maps.event.addListener(searchBox, 'places_changed', function () {
....
...
var places = searchBox.getPlaces();
for (var i = 0, place; place = places[i]; i++) {
$('#MAP_LAT').val(place.geometry.location.lat());
$('#MAP_LNG').val(place.geometry.location.lng());
}
OR
google.maps.event.addListener(markers, 'dragend', function (event) {
document.getElementById("lat").value = markers.getPosition().lat();
document.getElementById("lng").value = markers.getPosition().lng();
});
注意我没试过。
我测试了它,代码在下面,我认为你无法正确获取标记变量或我创建标记并且可以处理它;
if ($('#MAP_LAT').val() > 0 && $('#MAP_LNG').val() > 0) {
markerNew = new google.maps.Marker({
position: {lat: parseFloat($('#MAP_LAT').val()), lng: parseFloat($('#MAP_LNG').val())},//event.latLng,//
map: map,
icon: '../maps/GoogleMapsMarkers/original/red_MarkerH.png',
title: 'My Marker',
draggable: true,
animation: google.maps.Animation.DROP
});
google.maps.event.addListener(markerNew, 'dragend', function () {
var lat = markerNew.getPosition().lat();
var lng = markerNew.getPosition().lng();
$('#MAP_LAT').val(lat);
$('#MAP_LNG').val(lng);
});
}
我找到了,这就是我认为你不能使用标记变量, 它是编辑你的plunker代码 screenshot your plunker code after edited
你可以看到用于测试的整个plunker代码,在你的函数之后添加这个代码" places.forEach(function(place){"
console.log(markers);
if(markers != null){
google.maps.event.addListener(markers[0], 'dragend', function () {
var lat = markers[0].getPosition().lat();
var lng = markers[0].getPosition().lng();
console.log(lat);
});
}
,享受