Javascript 谷歌地图地理编码问题
我在谷歌地图地理编码方面遇到了一些问题Javascript 谷歌地图地理编码问题,javascript,html,wordpress,google-maps,geocoding,Javascript,Html,Wordpress,Google Maps,Geocoding,我在谷歌地图地理编码方面遇到了一些问题 出于某种原因,地图在这里起作用,但在我的网站上不起作用——我不明白为什么 如果我没有包括address=encodeURI(地址),我收到一个无效\u请求警报 如果我alertaddress变量,我会得到undefined 如果我运行下面的代码,它会将地图位置更改为堪萨斯城的某个地方 函数initMap(){ var map=new google.maps.map(document.getElementById('google_-map'){ 缩放:8,
address=encodeURI(地址)代码>,我收到一个无效\u请求
警报
alert
address变量,我会得到undefined
函数initMap(){
var map=new google.maps.map(document.getElementById('google_-map'){
缩放:8,
中心:{纬度:-34.397,液化天然气:150.644}
});
var geocoder=new google.maps.geocoder();
document.getElementById('submit')。addEventListener('click',function(){
地理编码地址(地理编码器、地图);
});
}
函数geocodeAddress(geocoder,resultsMap){
var address=document.getElementById('address')。值;
地址=编码URI(地址);
警报(地址);
geocoder.geocode({'address':address},函数(结果,状态){
如果(状态=='OK'){
resultsMap.setCenter(结果[0].geometry.location);
var marker=new google.maps.marker({
地图:结果地图,
位置:结果[0]。几何体。位置
});
}否则{
警报('地理编码因以下原因未成功:'+状态);
}
});
}
#谷歌地图{
宽度:500px;
高度:500px;
}
我解决这个问题的方法是:
- 确保启用服务API(在Google API仪表板上)
- 生成用于Javascript API的Javascript凭据
- 生成用于服务器API的服务器凭据
- 配置地理代码的初始值设定项
<input type="text" id="mapaddress" />
<input type="submit" id="change" onclick="changeMap()">
<div id="map" style="width: 413px; height: 300px;"></div>
谢谢我不知道为什么谷歌的原始代码不起作用,但是你的代码起作用了。如果或者当你有时间的时候,你可以在代码旁边加上注释。完成最后三个要点的代码。谢谢你能编辑吗?请帮我做那件事。我不清楚你的说法。
function changeMap(){
var mapOptions = {
zoom: 16,
center: new google.maps.LatLng(54.00, -3.00),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var geocoder = new google.maps.Geocoder();
//var address = '3410 Taft Blvd Wichita Falls, TX 76308';
var address= document.getElementById("mapaddress").value;
if(!address) {
address = '3410 Taft Blvd Wichita Falls, TX 76308';
}
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
return false;
}