4
MySQLを介して半径でzipを取得する際の問題
各郵便番号の中央の緯度と経度を含む郵便番号の表があります。私はそれを使用して、任意のポイントから半径1マイル以内の郵便番号のリストを取得します。 ジッパーの中心点が特定の半径内にないからといって、ジップ自体が半径内にないということにはならないということが、私に思い浮かんだばかりです。 超高度なアートスキルを使用して、ここでポイントを説明しました。 緑のストライプのブロブは、郵便番号A、B、Cを表しています。 赤い汚れは各郵便番号の地理的中心です フクシアドットはターゲットの場所です。 でこぼこの青い円は、ターゲットの場所から半径1マイルです。 ピンク色の汚れから半径1マイル以内のすべての郵便番号に対してクエリを実行すると、ピンク色の汚れ自体であっても、郵便番号BとCのみが返されます。郵便番号Aの中心点は半径1マイル以内にないためです。明らかに郵便番号Aです。 SELECT *, p.distance_unit * DEGREES(ACOS(COS(RADIANS(p.latpoint)) * COS(RADIANS(z.y)) * COS(RADIANS(p.longpoint) - RADIANS(z.x)) + SIN(RADIANS(p.latpoint)) * SIN(RADIANS(z.y)))) AS dist FROM standard_zip AS z JOIN ( /* these are the query parameters */ SELECT $lat AS latpoint, $lng AS longpoint, $miles AS radius, 69 AS …