2

次の MySQL ストアド関数呼び出しでは、緯度経度座標を手動で入力する代わりに、テストする別のテーブルから多角形を選択したいと考えています。構文を正しくするのに問題があります。

SELECT IS_POINT_IN_POLYGON(
POINTFROMTEXT( CONCAT( 'POINT(', latitude, ' ', longitude, ')' ) ) , POLYFROMTEXT( 'POLYGON((43.40930419213147, -72.5537109375
43.40884544242924, -72.53695249557495
43.38754804789373, -72.5437331199646
43.378580946950244, -72.58398771286011
43.40930419213147, -72.5537109375 ))' )
)AS result, latitude, longitude
FROM sport
WHERE sport_type = 'lacrosse' AND IS_POINT_IN_POLYGON(
POINTFROMTEXT( CONCAT( 'POINT(', latitude, ' ', longitude, ')' ) ) , POLYFROMTEXT( 'POLYGON((43.40930419213147, -72.5537109375
43.40884544242924, -72.53695249557495
43.38754804789373, -72.5437331199646
43.378580946950244, -72.58398771286011
43.40930419213147, -72.5537109375))' )
) = 1;

So, I'd like to remove 43.40930419213147, -72.5537109375 43.40884544242924, -72.53695249557495 43.38754804789373, -72.5437331199646 43.378580946950244, -72.58398771286011 43.40930419213147, -72.5537109375

代わりに、次の select ステートメントを使用したいと思います。

SELECT neighborhood_polygon FROM `neighborhood_shapes` WHERE neighborhood="XYZ neighborhood"

私は、neighborhood_shapes に格納されているポリゴンを持っています。その構造は次のとおりです。

  • neighbourhood_index smallint(3)
  • 近所の varchar(50)
  • neighbourhood_polygon(ジオメトリ)

追加情報:

IS_POINT_IN_POLYGON は次のように呼び出されます: IS_POINT_IN_POLYGON(p POINT, poly POLYGON)

助言がありますか?

4

1 に答える 1

0

これをやってみてください。

... POLYFROMTEXT(
    (SELECT neighborhood_polygon 
      FROM neighborhood_shapes 
      Where neighborhood = "XYZ neighborhood") as coords)
于 2011-08-26T03:59:27.700 に答える