Javascript 谷歌api反向地理代码
我的网站上有谷歌地图。用户可以拖动标记,地图将为我输入lat和lon到表单中。请参阅下面的代码。我希望能够从lat和lon获得地址,并将其放入我在“locationbox”的表格中Javascript 谷歌api反向地理代码,javascript,forms,google-maps,google-maps-api-3,Javascript,Forms,Google Maps,Google Maps Api 3,我的网站上有谷歌地图。用户可以拖动标记,地图将为我输入lat和lon到表单中。请参阅下面的代码。我希望能够从lat和lon获得地址,并将其放入我在“locationbox”的表格中 var映射; 函数初始化(){ var mylatng=new google.maps.LatLng(49.25302534866034,-102.04825518471148); 变量myOptions={ 缩放:3, 中心:myLatlng, mapTypeId:google.maps.mapTypeId.HY
var映射;
函数初始化(){
var mylatng=new google.maps.LatLng(49.25302534866034,-102.04825518471148);
变量myOptions={
缩放:3,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.HYBRID
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
var marker=new google.maps.marker({
真的,
职位:myLatlng,
地图:地图,
标题:“你的位置”
});
google.maps.event.addListener(标记'dragend',函数(事件){
document.getElementById(“latbox”).value=this.getPosition().lat();
document.getElementById(“lngbox”).value=this.getPosition().lng();
});
}
我有另外一段代码来查找我从中获得的地址,但我就是不知道如何将它们混合在一起
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var geocoder = new google.maps.Geocoder();
var lat = "12.1234";
var long = "98.7654";
var latlng = new google.maps.LatLng(sLat, sLong);
geocoder.geocode({"latLng":latlng},function(data,status){
if(status == google.maps.GeocoderStatus.OK){
var add = data[1].formatted_address; //this is the full address
alert(add);
for(var i=0; i<data[1].address_components.length; i++){
if(results[1].address_components[i].types[0] == "administrative_area_level_1"){
alert(results[1].address_components[i].short_name);
}
}
}
})
var geocoder=new google.maps.geocoder();
var lat=“12.1234”;
var long=“98.7654”;
var latlng=新的google.maps.latlng(sLat,sLong);
geocoder.geocode({“latLng”:latLng},函数(数据,状态){
if(status==google.maps.GeocoderStatus.OK){
var add=data[1]。格式化的_地址;//这是完整地址
警报(添加);
对于(var i=0;i我建议在dragend
事件侦听器函数中调用反向地理编码器:
google.maps.event.addListener(marker, 'dragend', function (event) {
document.getElementById("latbox").value = this.getPosition().lat();
document.getElementById("lngbox").value = this.getPosition().lng();
var latlng = this.getPosition();
geocoder.geocode({
"latLng": latlng
}, function (data, status) {
if (status == google.maps.GeocoderStatus.OK) {
var add = data[1].formatted_address; //this is the full address
// alert(add);
for (var i = 0; i < data[1].address_components.length; i++) {
if (data[1].address_components[i].types[0] == "administrative_area_level_1") {
document.getElementById('locationbox').value = data[1].address_components[i].short_name;
}
}
}
});
});
您是如何尝试将它们结合起来的?您真的多次包含API吗?我尝试在第一段代码中使用第二段代码的一部分。我没有将两段代码都放在一个文件中。我尝试从两段代码中生成一段代码。我只是根本不懂javascript,这让我很困惑。
<div id="map_canvas" style="width: 450px; height: 450px; background-color: Black;"></div>
<div id="latlong">
<p><input size="20" type="text" id="latbox" name="lat" placeholder="Drag the marker on the map or type in the latitude"></p>
<p><input size="20" type="text" id="lngbox" name="lon" placeholder="Drag the marker on the map or type in the longitude"></p>
</div>
<input class="text_field" id="locationbox" name="location" placeholder="Location" type="text" >
google.maps.event.addListener(marker, 'dragend', function (event) {
document.getElementById("latbox").value = this.getPosition().lat();
document.getElementById("lngbox").value = this.getPosition().lng();
var latlng = this.getPosition();
geocoder.geocode({
"latLng": latlng
}, function (data, status) {
if (status == google.maps.GeocoderStatus.OK) {
var add = data[1].formatted_address; //this is the full address
// alert(add);
for (var i = 0; i < data[1].address_components.length; i++) {
if (data[1].address_components[i].types[0] == "administrative_area_level_1") {
document.getElementById('locationbox').value = data[1].address_components[i].short_name;
}
}
}
});
});