我已经使用了地理编码的自动完成功能,但是当我从下拉列表中选择它时,它会给我一个lat和长地址
我需要检查lat和long是否为空,然后从发布的地址检查我必须得到纬度和经度
答案 0 :(得分:33)
假设你有lat和long的隐藏值 mapLat& mapLong和输入字段名称是location 然后你可以检查如下
<html>
<form>
<input type="hidden" name="mapLat">
<input type="hidden" name="mapLong">
<input type="text" name="location">
<input type="submit" name="submit" value="submit">
</form>
</html>
extact($_POST);
if($mapLat =='' && $mapLong ==''){
// Get lat long from google
$latlong = get_lat_long($location); // create a function with the name "get_lat_long" given as below
$map = explode(',' ,$latlong);
$mapLat = $map[0];
$mapLong = $map[1];
}
// function to get the address
function get_lat_long($address){
$address = str_replace(" ", "+", $address);
$json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false®ion=$region");
$json = json_decode($json);
$lat = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$long = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};
return $lat.','.$long;
}
答案 1 :(得分:3)
尝试使用此方法获取地址
<?
function getaddress($lat,$lng)
{
$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($lat).','.trim($lng).'&sensor=false';
$json = @file_get_contents($url);
$data=json_decode($json);
$status = $data->status;
if($status=="OK")
return $data->results[0]->formatted_address;
else
return false;
}
$lat= 26.754347; //latitude
$lng= 81.001640; //longitude
$address= getaddress($lat,$lng);
if($address)
{
echo $address;
}
else
{
echo "Not found";
}
?>
答案 2 :(得分:3)
使用 CURL
capturedImage.draw(in: CGRect(x: 0, y: 0, width: capturedImage.size.width, height:capturedImage.size.height))
答案 3 :(得分:2)
// We define our address
$address = 'Indore, MP 452001';
echo"<PRE>";
print_r(get_lat_long($address));
// function to get the address
function get_lat_long($address) {
$array = array();
$geo = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.urlencode($address).'&sensor=false');
// We convert the JSON to an array
$geo = json_decode($geo, true);
// If everything is cool
if ($geo['status'] = 'OK') {
$latitude = $geo['results'][0]['geometry']['location']['lat'];
$longitude = $geo['results'][0]['geometry']['location']['lng'];
$array = array('lat'=> $latitude ,'lng'=>$longitude);
}
return $array;
}
答案 4 :(得分:0)
我尝试了上述解决方案,但没有一个工作,然后我尝试自行修复,因此以下是正确的代码:
$going=$this->input->post('going');
$address =$going; // Google HQ
$prepAddr = str_replace(' ','+',$address);
$apiKey = 'Add your API Key'; // Google maps now requires an API key.
$geocode=file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?
address='.urlencode($address).'&sensor=false&key='.$apiKey);
//print_r($geocode);
$output= json_decode($geocode);
$latitude = $output->results[0]->geometry->location->lat;
$longitude = $output->results[0]->geometry->location->lng;