mysqlの空間データ型についてはかなりの量の質問がありますが、私のものはRailsMVCアーキテクチャー内でそれらをどのように処理する のが最善かについてより具体的です。
管理者ユーザーが新しい興味のあるポイント、たとえばレストランを作成し、いくつかの情報を入力できる入力フォームがあります。また、人間が読める緯度と経度を10進形式で入力することもできます。
ただし、距離計算などの場合は、位置データを空間ポイントとしてデータベースに保存しています。
したがって、私の質問は、RailsのMVCアーキテクチャでこれをどのように最適に処理するかです。
これが私が持っていたいくつかのアイデアですが、本当にきれいに見えるものは何もありません:
オブジェクトの新しいインスタンスを取得し、「GeomFromText('POINT(lat long)'))」の良さを処理する生のSQL更新を実行する:after_filterメソッドを呼び出します。これに関する問題は、「lat / long」が私の作成フォームのテキストフィールドになることですが、これは、lat / longは実際には属性ではないため、railsが提供するクリーンなform_for:objectアーキテクチャを混乱させますが、 mysql空間ではない人間の入力値。
たぶん、その行を更新する行挿入の後に実行するトリガーをデータベースに作成しますか?緯度/経度と空間ポイントを保存し、緯度/経度の小数を使用してデータベースに行を作成しない限り、これらのトリガーが緯度/経度にアクセスできるとは思えません。 、作成後にトリガーを実行して、空間を更新しました。モデルにlat/long列を追加した場合は、after_filterを使用してそれを行うこともできると思います。
他のアイデアはありますか?距離の計算などに実際に空間ポイントを使用するので、緯度/経度の保存は冗長だと思います...しかし、人間による編集を許可する場合は必要になる可能性があります。