jageocoder icon indicating copy to clipboard operation
jageocoder copied to clipboard

リバースジオコーディングに非常に時間がかかることがある

Open yonaka opened this issue 1 year ago • 1 comments

 いつもお世話になっております。

 jageocoder 2.1.7.post1で、座標によってはリバースジオコーディングに非常に時間がかかることがあります。 jageocoder reverse 138.5838018000000034 36.6327770999999984[{"candidate": {"id": 54798755, "name": "大字草津", "x": 138.57579040527344, "y": 36.62736892700195, "level": 5, "priority": 2, "note": "aza_id:0001000/postcode:3771711", "fullname": ["群馬県", "吾妻郡", "草津町", "大字草津"]}, "dist": 213.86216184373845}] を得るのに手元の環境(Windows 11 + python 3.11)で5分以上かかっています。

 デバッガで追ってみると、どうもrtree.pyのclass DelaunayTriangleのselectの中の三重forループで時間がかかっているようです。

yonaka avatar Aug 13 '24 06:08 yonaka

差し当たりrtree.pyを以下のように修正して凌いでいます。

537c537
<         node_dists = self._sort_by_dist(x, y, candidates)
---
>         node_dists = self._sort_by_dist(x, y, candidates)[:20]

yonaka avatar Aug 15 '24 17:08 yonaka

@yonaka ご報告ありがとうございます。

ご指摘の通り不具合を確認しましたので、ロジックを改善しました。 一通り動作確認を完了しましたら v2.1.8 として公開します。

t-sagara avatar Oct 09 '24 06:10 t-sagara

ありがとうございます。問題が解決していることを確認しました。

yonaka avatar Oct 12 '24 18:10 yonaka