我有一个包含地址的字符串php变量。可以说$ adress ='Universitätsring1,1010 Wien'。将字符串转换为Google坐标
有没有办法将这个变量转换成Google地图坐标并将它们保存在其他变量中?
真的不知道如何使用地理编码。
谢谢!
我有一个包含地址的字符串php变量。可以说$ adress ='Universitätsring1,1010 Wien'。将字符串转换为Google坐标
有没有办法将这个变量转换成Google地图坐标并将它们保存在其他变量中?
真的不知道如何使用地理编码。
谢谢!
是的,你可以,使用地理编码提供的XML,可以把地址作为参数的基础上,你可以得到lat和长:
$adress = 'Universitätsring 1, 1010 Wien';
$adress = urlencode($adress);
$url = 'http://maps.googleapis.com/maps/api/geocode/xml?address=' . $adress . '&sensor=true';
$xml = simplexml_load_file($url);
$status = $xml->status;
if ($status == 'OK') {
$latitude = $xml->result->geometry->location->lat;
$longitude = $xml->result->geometry->location->lng;
}
如果你想把它当作一个JSON或阵列可以将XML:
$adress = 'Universitätsring 1, 1010 Wien';
$adress = urlencode($adress);
$url = 'http://maps.googleapis.com/maps/api/geocode/xml?address=' . $adress . '&sensor=true';
$xml = simplexml_load_file($url);
$json = json_encode($xml);
$array = json_decode($json, true);
if ($array['status'] == 'OK') {
$latitude = $array['result']['geometry']['location']['lat'];
$longitude = $array['result']['geometry']['location']['lng'];
echo $latitude;
echo $longitude;
}
是的,你可以通过使用谷歌地图API地址解析
天气预报做到这一点是将地址(如“1600 剧场百汇,山景,CA”)转换为地理坐标 的过程(如北纬37.423021和经度-122.083739),您可以使用 将标记放置在地图上,或放置地图。
例:
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY
它将返回JSON或XML这样的:
{
"results" : [
{
"address_components" : [
{
"long_name" : "1600",
"short_name" : "1600",
"types" : [ "street_number" ]
},
{
"long_name" : "Amphitheatre Pkwy",
"short_name" : "Amphitheatre Pkwy",
"types" : [ "route" ]
},
{
"long_name" : "Mountain View",
"short_name" : "Mountain View",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Santa Clara County",
"short_name" : "Santa Clara County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "California",
"short_name" : "CA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "94043",
"short_name" : "94043",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA",
"geometry" : {
"location" : {
"lat" : 37.4224764,
"lng" : -122.0842499
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 37.4238253802915,
"lng" : -122.0829009197085
},
"southwest" : {
"lat" : 37.4211274197085,
"lng" : -122.0855988802915
}
}
},
"place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA",
"types" : [ "street_address" ]
}
],
"status" : "OK"
}
是的,我去过那里:)但我有很长的一个代码,我的地图插件至极包含即 VAR的MapOptions = { 中心:新google.maps .LatLng(49.2 692714,14.38580539999998), ..这些坐标怎么能被链接中的thos替换? – muzzie
追加你的地址与上面的网址,如 address = $ your_address,并使用curl命中链接,它将返回json或xml作为回应 –
您可以使用谷歌地理编码API。
您需要在谷歌开发者控制台注册应用程序,然后您可以发送请求与您的地址,如https://maps.googleapis.com/maps/api/geocode/json?address=Universitätsring 1, 1010 Wien&key=YOUR_API_KEY
阅读本指南,它应该有所帮助。
https://developers.google.com/maps/documentation/geocoding/start
哇,真好,谢谢。之所以问的是我有我的地图插件长的js代码包含即 VAR的MapOptions = { 中心:新google.maps.LatLng(40.2692714,12.38580539999998), ..现在我可以很容易地更换坐标由$纬度和$经度..但我认为这不是地理编码应该工作的方式,是吗? :D – muzzie
太棒了。乐意效劳。 – Ionut
@ muzzie,如果你想得到一个位置,它就是这样工作的。它没有错。在你的情况下,你在PHP中获取值并将它们发送到JavaScript我想用AJAX。您也可以使用Javascript来获取该位置的坐标,但也许您必须使用PHP,因为您从服务器端收到该地址。 – Ionut