我有一个反向地理位置代码,它返回一个格式化的地址,然后我将动态添加到谷歌地图地址字段,该字段应自动更新地图。问题是谷歌地图将更新的唯一方法是,如果我在输入字段中添加空格键或任何类型的输入,就好像它无法识别我通过document.getElementById动态添加的数据。('地址'。)=值
我试图模拟输入字段的关键事件,使其相信有数据添加,我试图使用谷歌api只是手动刷新没有效果的地图,我试图拆分字符串是添加它后添加以查看它是否识别出更改,我还尝试将输入字段的长度设置为+ 1以查看是否有效。我真的不知道在这一点上做什么。这是我当前尝试使输入字段识别出有值。
<span class="findme" id="find1"><i class="fa fa-compass" style="font-size:33px;color:green;"></i></span>
<script>
var find1 = document.getElementById("find1");
var info = document.getElementById("info");
var selector = [];
find1.addEventListener("click", function() {
selector.push("jform_fulladdress");
getLocation();
}, false);
function putInDom(address){
if(selector.length == 1){
//one field for address
var field = document.getElementById(selector[0]);
field.value = address;
}
}
function getLocation(){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(getAddress);
} else{
info.innerHTML="Geolocation is not supported by this browser.";
}
}
function getAddress(position){
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var apiurl = 'https://maps.googleapis.com/maps/api/geocode/json?latlng='+lat+','+lon+'&sensor=true';
var url = 'ba-simple-proxy.php?url='+encodeURIComponent(apiurl);
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.onload = function() {
if(this.status==200 && JSON.parse(xhr.responseText).contents.results.length > 0){
var result = JSON.parse(xhr.responseText).contents.results[0].formatted_address;
putInDom(result);
} else {
info.innerHTML = "Could not find your location.";
}
}
xhr.send();
}
jQuery('form').change(function() {
var splAd = document.getElementById('jform_fulladdress').value;
splAd = splAd.split(',').slice(0, 2).join(',');
document.getElementById('jform_maps_search').value= splAd;
document.getElementById('jform_fulladdress').value= splAd;
jQuery('jform_fulladdress')
.trigger({
type: 'keypress',
which: character.charCodeAt(49)
});
}).click(function() {
var splAd = document.getElementById('jform_fulladdress').value;
splAd = splAd.split(',').slice(0, 2).join(',');
document.getElementById('jform_maps_search').value= splAd;
document.getElementById('jform_fulladdress').value= splAd;
jQuery('jform_fulladdress')
.trigger({
type: 'keypress',
which: character.charCodeAt(49)
});
});
</script>