我是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插入到我的多边形中,但什么都没有出现。
答案 0 :(得分:2)
这是从一组 n 坐标创建和检索SQL Server中的地理多边形的语法:
DECLARE @Polygon geography;
SET @Polygon = geography::STPolyFromText('POLYGON((Lon1 Lat1, Lon2 Lat2, ... Lonn Latn, Lon1 Lat1))', 4326);
SELECT @Polygon;
(这假设您使用的是相对于WGS84基准面的地理坐标。如果您不知道这意味着什么,它们可能就是。)