2

私はデータベースの割り当て (TSQL) を行っており、使用する "よく知られているテキスト" が与えられています。

私はテーブルを作りました:

drop table geometry_polygons;
go
drop table geometry_points;
go
drop table geometry_linestrings;
go 
create table geometry_polygons(
    id int primary key NOT NULL,
    polygon geometry,
    label varchar(50),
    area decimal(10,4),
);
create table geometry_points(
    id int primary key NOT NULL,
    point geometry,
    label varchar(501),
);
create table geometry_linestrings(
    id int primary key NOT NULL,
    linestring geometry,
    label varchar(50),
    length decimal(10,4),
);

ジオメトリ ポイントをテーブルに挿入するにはどうすればよいですか?

私はこれを扱う必要があります。

(POLYGON((175.0305935740471 -39.924665194652604,175.03033608198166 -39.924387504970255,175.0301563739777 -39.92449035313209,175.03041118383408 -39.92474952981466,175.0305935740471 -39.924665194652604)),
POLYGON((175.02037167549133 -39.91957403819063,175.01922369003293 -39.92019116822632,175.02052187919617 -39.921170336469736,175.02149283885956 -39.920446247016564,175.02037167549133 -39.91957403819063)),
LINESTRING(175.03047287464142 -39.92471250463434,175.03052115440366 -39.9247659854439,175.03007590770721 -39.924840035726646,175.02978086471558 -39.92509098331137,175.02977550029755 -39.92522262757816,175.03003299236298 -39.92538306868607,175.03039240837097 -39.92549002921579,175.031116604805 -39.92600426019882,175.0300168991089 -39.92684347686768,175.0209134817123 -39.919899060702676,175.02084910869598 -39.91996488785901),POINT(175.031116604805 -39.92600426019882),POINT(175.0300168991089 -39.92684347686768),POINT(175.02427697181705 -39.92248272908731),
POINT(175.02696990966797 -39.92459731505649),
POINT(175.0277853012085 -39.925181488771976),
POINT(175.02287685871124 -39.92140689812598),
POINT(175.02042531967163 -39.920339278607294),
POINT(175.03031730651853 -39.924552061955026))
4

2 に答える 2

2

STGeomFromTextメソッドhttp://msdn.microsoft.com/en-us/library/bb933823.aspxを使用して、WKT を Sql Server Geometry として変換できます。

あなたの次の質問は「この SRID とは何ですか?」かもしれないので、関連する SO の質問ジオメトリ列を次に示します: STGeomFromText と SRID (SRID とは何ですか?)

于 2014-06-19T21:19:24.513 に答える
0

このようなもの:

declare @g geometry; 
set @g=geometry::STGeomFromText('POLYGON((175.0305935740471 -39.924665194652604,175.03033608198166 -39.924387504970255,175.0301563739777 -39.92449035313209,175.03041118383408 -39.92474952981466,175.0305935740471 -39.924665194652604))', 4326);  
insert into geometry_polygons (polygon) values (@g);

多くの空間関数が適切に機能するためには、緯度/経度を意味する 4326 など、空間参照系 (SRS) とも呼ばれる座標参照系を指定する必要があることに注意してください。

編集:更新された質問に追加したジオメトリは、ポリゴン、ラインストリング、およびポイントの混合物であるため、それらをすべて1つに追加する場合は、GeometryCollection(タイプの混合を取ることができます)を使用する必要があります行くか、それらを別々のエントリに分割します。ただし、GeometryCollection では多くの空間関数が機能しないため、このように異なるジオメトリ タイプを混在させることは一般的にはお勧めできません。

于 2014-06-19T21:19:55.410 に答える