それぞれの位置のlat値とlon値を持つジョブのmysqlとsolrデータベースがあります。入力場所のx移動時間内のlat、lon項目のデータベースを検索する方法
現在、ユーザーはxマイル以内の場所でジョブを検索できます。 x分(旅行時間)以内に、場所によって検索する機能を提供したいと考えています。
私は検索を試みましたが、可能な旅行エリアを地図上にプロットする方法に関する情報のみを見つけることができます。この例はroute360からです:http://codepen.io/route360/pen/Wrbvmg
誰かが私のSolrコア(または必要ならばmysql DB)の文書を検索する方法を知っていますか?
これとは別の方法で対処する必要がありますか?
私はちょうど平均速度を使用します。ここで、作業溶液を得た(毎時30マイルを言う)、その後、ユーザ入力(私はサンルームを使用)
$speed = 30; //mph
$time = $_GET['time']; //say it was '30' minutes
// time is in minutes. get what that is as fraction of 60
// to multiply speed by to get radius
$fraction = $time/60; // would give 30/60 = 0.5;
$radius = $speed * $fraction; // would give 30 * 0.5 = 15 miles radius
// lat and lon are created earlier from user input location by querying my DB of locations
$query->createFilterQuery('distance')->setQuery(
$helper->geofilt(
'latlon',
doubleval($lat),
doubleval($lon),
doubleval($radius * 1.609344) // default is KM so multiply to get miles
)
);
これは正常に動作しますが、その時間的要因によって複数ましたそれほど正確ではありません。また、私は歩く、公共の交通機関のような旅行タイプでフィルタリングすることができません...任意のアイデア?
これを確認してくださいhttps://www.scribd.com/presentation/2569355/Geo-Distance-Search-with-MySQL – Eric