3

シェープファイル (ニューヨークの犯罪など、米国の人口統計/ヒート マップ データ) データを SQL Server 2008 データベースにインポートしました。フィールド データ型はGeographyです。

このデータを選択クエリから、Google マップまたは Microsoft Virtual Earth に表示できる形式で取得するにはどうすればよいですか?

ありがとう!

編集1:これまでのところ、最良の解決策は(無料の)サードパーティのdll(SharpMap)を使用することでした。互換性のある形式で返すために、誰かがsql2008でいくつかのSQLトリックを提案してくれることを願っています...

4

3 に答える 3

3

Geri Langlois の Sharpmap リンクは 0.9 です。ブリーディング エッジが必要な場合、リポジトリは次のとおりです: http://sharpmapv2.googlecode.com/svn

また、座標情報を KML に配置する前に、データが緯度/経度 WGS84 であることを確認する必要があります。SQLServer2008 でそれを行う方法がわかりません ( ogr2ogrを使用する必要があるかもしれません)。

STX と STY を使用すると、おそらく KML の座標タグをいくつか生成できます

select SHAPE.STX as X
    ,SHAPE.STY as Y
    ,SHAPE.STAsText() as WKT
    ,SHAPE.AsGml() as GML
from dpu.SW_SERVICE_LOCATIONS

たぶん次のようなもの:

SELECT '<coordinates>'+convert(varchar,convert(decimal(20,6), SHAPE.STX),1)+
    ','+ convert(varchar,convert(decimal(20,6), SHAPE.STY),1) 
    + '</coordinates>'
FROM sw_service_locations;
于 2009-02-23T13:21:56.890 に答える
2

この投稿を見てください。これを使用してシェープファイルを読み取り、Virtual Earth に表示することに成功しました。これにより、シェープ ファイル データを Virtual Earth にオーバーレイする方法の基本的なアイデアが得られます。

SQL Server 2008 の空間データを使用するには、codeplex のSharpMapプロジェクトを調べます。これらは、私が参照した投稿で使用されたツールであり、SQL サーバーのデータ型をサポートしています。

于 2008-11-14T01:11:30.257 に答える
0

これを行う最も簡単な方法は、XML を選択してから、データを GeoRSS または KML に変換することです。Virtual Earth と Google マップはどちらも KML をサポートしているため、KML を使用するのがおそらく最も簡単な方法です。

ただし、考慮事項があります。データに多くの頂点がある場合は、マップ ビュー内のデータのみを取得するために何らかの AJAX メソッドを実装することをお勧めします。SQL 2008 でデータを一般化して、ズーム レベルに応じて頂点の数を減らすことができます。国レベルにズームアウトすると、町にズームインする場合ほど詳細は必要ありません。

MapDotNetには、Virtual Earth マップ内のデータをより簡単に取得するための多くの機能があります。選択クエリを実行して、必要に応じてデータを表示するのは比較的簡単です。Google マップ用の類似製品は他にもあると思いますが、個人的には使用していません。ポリゴンとヒート マップをサポートしており、Virtual Earth を使用するよりも多くの機能を提供します。Virtual Earth は強力ですが、マッピングのバックグラウンドを持つ人が自分でプログラミングする必要があると予想する GIS ツールがたくさんあります。

于 2008-11-12T01:32:56.010 に答える