Mysql
mysql 中基於 Zip 的搜尋。
我想在 mysql 數據庫中實現一個基於 zip 的搜尋,我根據一個下拉列表填充我的數據庫中的位置列,其中我有預定義的郵政編碼,現在如果使用者想要搜尋半徑內的商品在他目前所在位置的 75 英里處,我想知道如何以及哪種方式是實現這一目標的最佳方式。我是 mysql 新手,因此非常感謝您提供詳細的答案。如果我也有一些例子,我會很高興。
有幾種方法可以做到這一點
一種。對您的郵政編碼進行地理編碼併計算兩點之間的距離(或使用現有的 API 來執行此操作)。有幾個地方可以免費對少量地址進行地理編碼,也可以購買數據庫。請注意,這種方法並非完全微不足道,但從長遠來看可能是最好的。
您可以在https://developers.google.com/maps/documentation/geocoding/通過 Google 完成地理編碼
然後,要計算距離,請使用https://developers.google.com/maps/documentation/distancematrix/
灣。手動設置哪些郵政編碼與數據庫中的其他郵政編碼接壤。您說您正在提供預定義的郵政編碼,因此這可能是一個更簡單的解決方案(儘管對於大量郵政編碼而言,這將是昂貴的)這個想法是您有一個新表 zip_neighbours 如下
Zip code, neighbour 100, 101, 102, 103 101, 100, 102, 104 102, 100, 101, 104
這不會給出準確的“75 英里”邊界,但可以用作一個很好的指示。當使用者想要包括附近的郵政編碼時,您可以在此表中查找鄰居並將它們包括在搜尋中。