gpt4 book ai didi

php - 点击 map 后获取地址

转载 作者:可可西里 更新时间:2023-11-01 12:45:34 25 4
gpt4 key购买 nike

我需要在点击 map 后获取地址和坐标,我使用的是 google map api v3,我恢复了输入中的坐标,但我还需要该点的地址。

 function initialize() {
var myOptions = {
center: new google.maps.LatLng(36.835769, 10.247693 ),
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
google.maps.event.addListener(map, 'click', function(event) {
placeMarker(event.latLng);
});

var marker;
function placeMarker(location) {
if(marker){ //on vérifie si le marqueur existe
marker.setPosition(location); //on change sa position
}else{
marker = new google.maps.Marker({ //on créé le marqueur
position: location,
map: map
});
}
latitude.value=location.lat();
longitude.value=location.lng();
}

}

我使用这个 php 脚本来获取地址,但如果不知道如何在 javascript 中使用它?我可以使用 javascript 获取地址吗?

<?php
$url = 'http://where.yahooapis.com/geocode?location=40.714224,-73.961452&gflags=R&flags=J';
$response = json_decode(file_get_contents($url));
$location = $response->ResultSet->Results[0];
foreach ((array) $location as $key => $value) {
if($key == 'city')
$city = $value;
if($key == 'country')
$country = $value;
if($key == 'street')
$street = $value;
}
echo "Street: ".$street."<br>";
echo "City: ".$city;
echo "<br/>Country: ".$country;

?>

最佳答案

这是一个检索地址的简单示例。结果可能会变得复杂(它是一个数组,据我所知,它是十字路口、社区、州和国家/地区的任意组合。我没有看到模式)

我只使用第一行结果,它是街道、城市、州、国家/地区的组合。在此处阅读详细信息:

https://developers.google.com/maps/documentation/javascript/geocoding#GeocodingResults

演示在这里:http://jsfiddle.net/eB2RX/1/

我注意到分辨率不是很好,我的意思是,在美国你会得到街道号码,但在突尼斯却不会。我只看到街道名称。

部分代码:

  var map;
var geocoder;
var mapOptions = { center: new google.maps.LatLng(0.0, 0.0), zoom: 2,
mapTypeId: google.maps.MapTypeId.ROADMAP };

function initialize() {
var myOptions = {
center: new google.maps.LatLng(36.835769, 10.247693 ),
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
};

geocoder = new google.maps.Geocoder();
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
google.maps.event.addListener(map, 'click', function(event) {
placeMarker(event.latLng);
});

var marker;
function placeMarker(location) {
if(marker){ //on vérifie si le marqueur existe
marker.setPosition(location); //on change sa position
}else{
marker = new google.maps.Marker({ //on créé le marqueur
position: location,
map: map
});
}
document.getElementById('lat').value=location.lat();
document.getElementById('lng').value=location.lng();
getAddress(location);
}

function getAddress(latLng) {
geocoder.geocode( {'latLng': latLng},
function(results, status) {
if(status == google.maps.GeocoderStatus.OK) {
if(results[0]) {
document.getElementById("address").value = results[0].formatted_address;
}
else {
document.getElementById("address").value = "No results";
}
}
else {
document.getElementById("address").value = status;
}
});
}
}

关于php - 点击 map 后获取地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10375925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com