2014-03-02 108 views
1

我正在使用谷歌API的PHP應用程序,我想檢查一個城市是否在一個國家。檢查一個城市是在一個東北經緯度和西南緯度/經度國家

例如:在法國的巴黎?

法國幾何界限:

"northeast" : { 
        "lat" : 51.089166, 
        "lng" : 9.560067799999999 
       }, 
"southwest" : { 
        "lat" : 41.3423276, 
        "lng" : -5.141227900000001 
       } 

巴黎幾何界限:

"northeast" : { 
       "lat" : 48.9021449, 
       "lng" : 2.4699208 
      }, 
"southwest" : { 
       "lat" : 48.815573, 
       "lng" : 2.224199 
      } 

感謝。

+0

你最近怎麼樣?如果您正在使用地理編碼服務(或地點圖書館),則通常會提供有關其所屬國家/地區的其他信息。 – geocodezip

+0

是的,我知道,但我不能檢查地理編碼服務,如果一個adress_sreet屬於或不是一個鄰居 – zeomega

+0

您的問題是關於在國家的城市,而不是在社區地址。 – geocodezip

回答

1

有趣的問題。檢查了這個我做了一個例子:

function inRange($value, $max, $min) { 
    return $value >= $min && $value <= $max; 
} 

$city_coords_northeast = // put your northeast city coords here(array) 
$city_coords_southwest = // put your southwest city coords here(array) 

$country_coords_northeast = // put your northeast country coords here(array) 
$country_coords_southwest = // put your southwest country coords here(array) 

if(inRange($city_coords_northeast['lat'], $country_coords_northeast['lat'], $country_coords_southwest['lat']) && 
    inRange($city_coords_northeast['long'], $country_coords_northeast['long'], $country_coords_southwest['long']) && 
    inRange($country_coords_southwest['lat'], $city_coords_northeast['lat'], $city_coords_southwest['lat']) && 
    inRange($country_coords_southwest['long'], $city_coords_northeast['long'], $city_coords_southwest['long'])) { 
    echo 'Paris is in France!'; 
} 

PS:我不認爲這是非常快,但它使它的工作。

+0

你的意思是「函數inRange($ value,$ max,$ min)」,你忘記用city_coords_southwest替換country_coords_southwest在第三和第四列的範圍 – zeomega

+0

謝謝。我做了改變。它工作嗎? – aksu

+0

在第3和第4行,你扭轉城市和國家,我們比較一個城市座標到一個國家的範圍。但在這個解決方案中,我們比較兩個正方形而不是兩個圓,所以這不能與另一個座標一起工作。 – zeomega

相關問題