与えられたLAT&LNGがポリゴンの内側にあるかどうかを確認するのに適していますか? -- mysql フィールド と geometry フィールド と geospatial フィールド と mysql-5.6 フィールド と hibernate-spatial フィールド 関連 問題

which function is good to check whether the given lat & lng is inside the polygon?












0
vote

問題

日本語

私は以下の mysql空間関数が所定のつまざと縦率をチェックすることができます。

1 - MBR_CONTANSE

2 - mbr_within

fast 正確な の結果を確認するために、 MySQLサーバーのポリゴンの外側には、クエリ自体によって。

も、これよりも優れた解決策を見つけた場合は、(MySQL Serverで問合せに確認する必要があります。)?

Arunraj

英語

I have found the following mysql spatial functions which can check a given lattitude and longtitude is inside the polygon or not.

1 - MBR_Contains

2 - MBR_Within

Please guide me, which will give fast and accurate result to check a given point is inside or outside of the polygon in MySql server by the query itself.

Also Suggest me, If you found any better solution than this ( It should be checked by query in Mysql Server.)?

Regards, ArunRaj

</div
              
   
   

回答リスト

1
 
vote
vote
ベストアンサー
 

彼らは可能性が高い(速度に関して)、しかしあなたは両方の機能を使ってあなた自身のテストを実行するべきです。

言ったように、MySQL 5.6.1を使用できると仮定すると、MBR機能を控えてST機能を使用する必要があります。

<事前> <コード> ST_Contains() ST_Within()

MBRは最小限の境界矩形を表し、したがって、ポイントは最小境界矩形内にありますが、実際にはポリゴン内ではありません。 STメソッドは形が正確であり、あなたにもっと正確な答えを与えます。

編集、どれを使うべきか?私はあなたがポリゴン内のポイントをテストしているのと同じように使用できると思いますが、再び安全のためにポリゴンにいることを知っているポイントでテストします。

 

They're likely the same (in terms of speed), but you should run your own tests using both functions.

That said, Assuming you can use MySQL 5.6.1, you should refrain from the MBR functions and use the ST functions:

ST_Contains() ST_Within() 

The reason, MBR stands for minimum bounding rectangle, therefore a point can be within the minimum bounding rectangle, but not actually within the Polygon. The ST methods are exact to the shape and will give you a more precise answer.

Edit, Addressing which one should I use? I believe you can use either as you're testing a point within a polygon, but again test on a point you know to be in a polygon for safety.

</div
 
 
   
   

関連する質問

1  MySQLポイントデータ型をHibernateでマッピングします  ( Mapping mysql point data type with hibernate ) 
既存のMySQLデータベースは、「ポイント」データ型を持つテーブルに列を持つ既存のMySQLデータベースがあります。私がした最初のものは、gradleビルドファイルに空間的な依存関係をvia: <事前> <コード> implementation 'org.hi...

3  EclipseでHibernate Toolsを使用できないのはなぜoracleSpatial10gDialectクラスを見つけるのですか?  ( Why cant hibernate tools in eclipse find the oraclespatial10gdialect class when ) 
私は私のPOMにHibernate-Spatial依存関係を追加しました、そして私はプロジェクトを更新した後にJarがダウンロードされるのを見ることができます。私がアプリを実行するとき、それは空間方言を使ってうまく機能しますが、私がEclipseでエンジニアを...

8  JPA基準APIとHibernate Spatial 4を一緒に使用する  ( Using jpa criteria api and hibernate spatial 4 together ) 
ここでのクエリ例を指定して: http://www.hibernatepatial.org/tutorial-hs4。 HTML <事前> <コード> use AwsDynamoDbDynamoDbClient; try { ...

4  データベースのポイントフィールドにエンティティクラスのポイントフィールドをマッピングできない理由はなぜですか?列 "location"はタイプポイントですが、式はバイテア型です  ( Why i cant map a point field of my entity class on a point field on the databas ) 
私は私の最初の春のブーツ + 春データJPA + 休眠5 postgresql データベース。 point をデータ型としてマッピングしようとすると、次のような問題がある(そこで私は休止状態の空間をネイティブに含まれています。だから私は次のような状況...

0  Hibernate-Spatial APIを使用してMySQL 5.6にジオメトリデータ型を格納することは可能ですか?  ( Is it possible to store a geometry datatype in mysql 5 6 by using hibernate spat ) 
MySQL5.6の多角形形状の座標を持続したいと思います。 PostgreSQLのチュートリアルを見ました。 http://www.hibertspatial.org/documentation/02-tutorial/01-チュートリアル4 / しか...

1  Hibernate Spatial MySQL 5.7  ( Hibernate spatial mysql 5 7 ) 
im hibernate空間を使いようとしています。私は以下の設定をしました.... Hibernate.Version 5.2.2.final MySQL 5.7 <事前> <コード> <dependency> <groupId>...

0  データを保持するためにDoubleを使用しているため、Spatialデータ型は15桁以上の精度を保持できない理由はなぜですか。  ( Why spatial datatype can not hold more than 15 digit precision since it is using ) 
私はMySQLデータベースサーバ内のGEO座標を保存しようとしています。私の座標精度値が15桁を超えると、値は四捨五入され、データベースに保存されます。 このdoc のために起こっていると思います。 しかし興味深い情報は、二重データ型と同じ座標を保存しよう...

1  SpatialIntegratorはインスタンス化できませんでした  ( Spatialintegrator could not be instantiated ) 
Postgis 2.2とPostgreSQL 9.5をJPA、Postgis 9.5方言で使用しようとしています。ここでのようにpom.xmlに要求されています http://www.hibertatepial.org /ドキュメンテーション/ドキュメント/...

1  Hibernate SpatialをSpring Boot Projectに使用しようとしている理由InstantiationException  ( Why i have this error trying to use hibernate spatial into a spring boot project ) 
私は休眠空間を spring boot プロジェクトに設定しようとしています、そして私はいくつかの問題を見つけています。 mariadb を使用しています( mysql )ND Hibernateが以前に設定されていました(私は問題なくGISのすべての機能...

2  Hibernate Spatial - 無効なエンディアンフラグ値が発生しました  ( Hibernate spatial invalid endian flag value encountered ) 
ハイバネートと休止状態の空間的なスプリングブーツプロジェクトを持っています。アプリケーションのオブジェクトの1つは、現在のユーザーの周囲のエリア内のすべての一致を見つけることでした。 <事前> <コード> @Entity(name = "match") @T...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有