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 插入到我的多边形中,但什么也没有出现。

4

1 回答 1

2

这是在 SQL Server 中从一组n坐标创建和检索地理多边形的语法:

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

(这假设您使用的是相对于 WGS84 基准的地理坐标。如果您不知道这意味着什么,它们可能是。)

于 2012-04-18T08:48:33.607 回答