我试图制作一个程序,创建一个基于用户输入的地址的谷歌地图。由于我不能手动嵌入每个页面的链接,所以当用户用地址回答表单时,我可以获取该地址并绘制google地图。我必须把地址转换成经纬度,然后再这样做吗?
发布于 2022-01-18 02:26:30
关于Google地图javascript,您需要纬度(lat)和经度(lng)在地图上放置一个标记。要找到入口的lat和lng,您需要地理编码服务。
地理编码是将地址(如“1600AmphitheaParkway,山景城,CA")转换为地理坐标(如纬度37.423021和经度-122.083739)的过程,您可以使用这些坐标在地图上放置标记或定位地图。
它存在大量的地理编码服务,提供了一个。首先,您需要激活acount中的Geocoding (请参阅文档中的此页 )。
通过使用地理编码API
要找到一个入口(例如:“1600AmphitheaParkway,山景城,CA 94043,USA"),它只是一个简单的API请求,如下所示
https://maps.googleapis.com/maps/api/geocode/jsonaddress=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY您可以从JSON响应中获取lat/lng,并使用它在地图上放置标记。要做到这一点,只需遵循文献资料的指示,您就可以通过执行以下操作来放置标记
let myLatLng = {lat:myLatitude, lng:myLongitude};
new google.maps.Marker({
position: myLatLng,
map
});通过使用Geocoder()
就像@JeremyW说的,您也可以通过使用Google中的Geocoder类来调用地理编码服务(参见这个职位)。
let geocoder = new google.maps.Geocoder();然后..。
let adress = "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA";
geocoder.geocode( { 'address': address}, function(results, status){
if(status == google.maps.GeocoderStatus.OK){
if(status != google.maps.GeocoderStatus.ZERO_RESULTS){
let marker = new google.maps.Marker({
position: results[0].geometry.location,
map: map
});
}
else{
console.log("No results found");
}
}
else{
console.log("Geocode was not successful for the following reason: " + status);
}
}https://stackoverflow.com/questions/70749154
复制相似问题