2016-07-04 7 views
1

レストランを含むmysqlテーブル(innoDB)があり、各レストランには緯度と経度のフィールド(テーブルに別々の列)があります。Mysql - ビューポート内の座標を持つ項目を見つける

私はこの問題が発生したとき、私は戻ってGoogleの「ビューポート」から取得し、地球上の場所を探すために、顧客のためにGoogleの場所APIオートコンプリートを使用しています

["viewport"]=> 
    array(2) { 
    ["northeast"]=> 
    array(2) { 
     ["lat"]=> 
     float(52.4309497) 
     ["lng"]=> 
     float(5.0683726) 
    } 
    ["southwest"]=> 
    array(2) { 
     ["lat"]=> 
     float(52.3182742) 
     ["lng"]=> 
     float(4.7288559) 
    } 

私の質問はどのようにしてありますビューポート私はGoogleから取得、私は内部のすべてのレストランを検索することができますか?

ありがとうございました。

答えて

2

それを行うための2つの方法があります

select * from TABLE where緯度BETWEEN [northeast lat] and [southwest lat] and経度BETWEEN [southwest lng] and [northeast lat]

  • > =と< =演算子を使用するには

select * from TABLE where緯度>= [northeast lat] and緯度<= [southwest lat] and経度>= [southwest lng] and経度<= [northeast lat]

注1:あなたが見ることができました。私のサーバー上で最速のクエリが注2

BETWEEN使用していましたMYSQLのdocのBETWEENは(min < = expr AND expr < =最大)thereoryでは、それらは同じでなければなりませんが、私は> =と、それは私がtiが

乾杯理にかなって願っています:) BETWEENオプションよりも遅かったという事実を指摘して< =オプションをsudgestすることを決めた

関連する問題