编辑:已解决,已使用工作代码更新。谢谢大家!
我有一个在jsFiddle中运行的反向地理定位应用程序,但似乎无法使其在正常环境中正常工作。
JS小提琴:http://jsfiddle.net/vd3mK/
本地代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script>
var geocoder;
function initialize() {
geocoder = new google.maps.Geocoder();
codeLatLng();
}
function codeLatLng() {
var input = document.getElementById("latlng").getAttribute('value');
var latlngStr = input.split(",", 2);
var lat = parseFloat(latlngStr[0]);
var lng = parseFloat(latlngStr[1]);
var latlng = new google.maps.LatLng(lat, lng);
geocoder.geocode({
'latLng': latlng
}, function(results, status) {
document.getElementById("test").innerHTML = '' + (results[0].formatted_address); + ''
});
}
</script>
</head>
<body onload="initialize()">
<div id="latlng" value="43.4494152,-80.4881973"></div>
<div id="test"></div>
</body>
</html>
当本地版本在我的浏览器中运行时,它会给我:“”。
是什么原因造成的?我如何解决它?谢谢!
工作代码
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var geocoder;
function codeLatLng() {
var input = document.getElementById("latlng").getAttribute('value');
var latlngStr = input.split(",", 2);
var lat = parseFloat(latlngStr[0]);
var lng = parseFloat(latlngStr[1]);
var latlng = new google.maps.LatLng(lat, lng);
geocoder.geocode({
'latLng' : latlng
}, function(results, status) {
document.getElementById("test").innerHTML = '' + (results[0].formatted_address);
+''
});
}
function initialize() {
geocoder = new google.maps.Geocoder();
codeLatLng();
}
</script>
</head>
<body onload="initialize();">
<div id="latlng" value="43.4494152,-80.4881973"></div>
<div id="test"></div>
</body>
</html>
最佳答案
您需要通过meta标签设置页面的编码,但是您还需要以UTF-8编码实际页面(文件)。