2012-04-18 11 views
0

私はGISアプリケーションを初めて使いました。少し問題があります。私は地理座標を使用してポリゴンをプロットしようとしていますが、ポリゴンをプロットする際にこれらの座標をポイントに変換する必要があります。 これらの座標をポリゴンに使用するポイントに変換する方法がわかりません。私は昨日、これを行う方法を見つけ出したが、実際にはまだそれを得ていない。 ms sql server 2008でgeographyデータ型を使用しようとしましたが、ポリゴンまたは変換された座標を取得する際にjava apiが見つかりませんでした。 これを行う方法のサンプルコードを手伝ってください。経度と緯度をポイントに変換し、ポリゴンを描画する際のポイントを使用する方法

ありがとうたくさんの人!

これは私のコードです。 'コード'

double earth=6371; 
double focal=500; 

double lat= 47.653 ; 
double lon = -122.358 ; 

double latitude = lat*Math.PI/180; 
double longitude = lon*Math.PI/180; 

double x = earth * Math.sin(latitude)*Math.cos(longitude); 

double y = earth * Math.sin(latitude)*Math.sin(longitude); 

double z = earth * Math.cos(latitude); 

double projectedX = x*focal /(focal+z); 

double projectedY = y * focal/(focal+z); 

int magx = (int) Math.round(projectedX * 5); 
int magy = (int) Math.round(projectedY *5); 

System.out.println ("MAG X : "+magx); 
System.out.println ("MAG Y : "+magy); 

私はポリゴンにd mag xとyを差し込むだけですが、何も表示されません。

+1

タイトルからキーワードを検索すると、 '経度緯度ポイントポリゴンを変換する'と表示される可能性が高いヒットが多く表示されます。その多くはSOで表示されます。彼らに調査をして、あなたにソリューションをスプーンフィードするように効果的に求めるのではなく、いくつかのコードをカットしようとしないでください。 –

+0

私はspoonfedしたいように聞こえる場合は申し訳ありません。しかし正直なところ、私はこれについて多くの研究をしました。シンプルな説明は私が必要としているところであり、どこかで問題について質問を投稿して指示を得ることができます。 –

+0

*しかし、正直なところ、私はこれについて多くの研究をしました。*しかし、スレッドにリンクして、今日このサイトに参加したばかりの見知らぬ人の正直さに頼ることを期待しないでください。 **もっと重要なのは、**あなたが見たものを見せてくれて、なぜこのユースケースに適していないのか理解できるようにするという利点もあります。驚くべきことに思われるかもしれませんが、SOの人々は精神的なものではありません(大部分はそうではありません)。 *「私が必要とするのは簡単な説明です」*あなたがリンクしていないページには多くがあると思います。 SOは「tutor me」サイトではありません。こんにちはアンドリュ。 –

答えて

2

これはn個のセットからSQL Serverで地理ポリゴンを作成し、取得するための構文ですが、座標:

DECLARE @Polygon geography; 
SET @Polygon = geography::STPolyFromText('POLYGON((Lon1 Lat1, Lon2 Lat2, ... Lonn Latn, Lon1 Lat1))', 4326); 
SELECT @Polygon; 

(これはWGS84データムに対する地理座標を使用していると仮定した場合。

+0

ありがとうございます。私はmssqlスタジオにデータを表示することができます。 Javaアプリケーションで同じポリゴンを表示したい場合は、それが可能かどうかわかりません。 –

+0

はい - JDBC経由でデータベースに接続し、ストアドプロシージャを実行して必要な結果を取得し、Javaでプロットします。 JavaはSQL Serverのネイティブ地理フォーマットを理解しないため、代わりにクエリでToString()を使用して結果をテキストベースのWKTとして返します。次に、座標列を解析できます。 –

+0

ありがとうございます。私はバイト単位でgeographyカラムからデータを取得しようとしましたが、それを文字列に変換しましたが、出力はまだ読めないバイトフォーマットでは意味がありません。 –

関連する問題