我在网站上整合谷歌地图时遇到了一些问题,该地图可以在显示具有正确位置的地图之前对地址进行地理编码。
所以我有一个脚本(当我在localhost时它起作用,但因为我把网站放在网上没有任何反应):
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var geocoder;
var map;
var firstLoc;
function findAddress() {
geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address' : document.getElementById('address_field').value},
function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
firstLoc = results[0].geometry.location;
map = new google.maps.Map(document.getElementById("map-location"),
{
center: firstLoc,
zoom: 17,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
}
else {
alert('Geocode failed: ' + status);
}
}
);
}
google.maps.event.addDomListener(window, 'load', findAddress);
</script>
我在我的主题选项页面的字段中放置了一个地址,然后我注册了该值并将其放在我的前端的隐藏输入中并尝试使用geocoder.geocode( { 'address' : document.getElementById('address_field').value}
似乎地理编码存在问题,我使用带有修复位置的简单脚本进行测试,结果显示正常。
如果你需要它,这就是我在前端显示地图的方式:
<div class="contact-map">
<div id="map-location"></div>
<form class="address-hidden">
<?php echo "<input id='address_field' type='text' value= '{$content_options['geolocal_setting']}'/>"?>
</form>
</div>