Java 如何将经度和纬度转换为点,以及如何在绘制多边形时使用这些点

Java 如何将经度和纬度转换为点,以及如何在绘制多边形时使用这些点,java,sql-server,gis,latitude-longitude,Java,Sql Server,Gis,Latitude Longitude,我是地理信息系统应用的新手,我有一个小问题。我正在尝试使用地理坐标绘制多边形,但我需要将这些坐标转换为点,然后才能使用它们绘制多边形。 我不知道如何将这些坐标转换为用于多边形的点。昨天我花了整整一天的时间来研究如何做到这一点,但我真的还是不明白。 我尝试在ms sql server 2008中使用地理数据类型,但在检索多边形或转换后的坐标时找不到java api。 请帮我提供一个关于如何做到这一点的示例代码 谢谢大家 这是我的密码。”代码' double earth=6371; double f

我是地理信息系统应用的新手,我有一个小问题。我正在尝试使用地理坐标绘制多边形,但我需要将这些坐标转换为点,然后才能使用它们绘制多边形。 我不知道如何将这些坐标转换为用于多边形的点。昨天我花了整整一天的时间来研究如何做到这一点,但我真的还是不明白。 我尝试在ms sql server 2008中使用地理数据类型,但在检索多边形或转换后的坐标时找不到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插入多边形,但什么也没有出现。

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

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

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

搜索标题中的关键字,即“转换经纬度点多边形”,会发现许多可能的点击,其中很多都是如此。为什么不调查一下这些问题,试着删减一些代码,而不是有效地要求人们用勺子把解决方案喂给你?如果听起来我想被勺子喂,我很抱歉。但老实说,我对此做了很多研究。一个简单的解释就是我所需要的,我可以在某个地方发布关于这个问题的问题并获得指导。“但老实说,我已经做了很多关于这个问题的研究。”但是链接到这些线程&不要指望我们依赖一些今天刚刚加入这个网站(检查)的陌生人的诚实。更重要的是,它还可以向我们展示您所看到的内容,并帮助我们理解为什么它们不适合这个用例。令人惊讶的是,SO的人并没有通灵能力(其实他们中的大多数人都没有通灵能力)。“一个简单的解释就是我所需要的”我敢打赌在你没有链接到的页面中有很多。所以不是一个“导师我”的网站。你好,安德鲁。我试着用我在上面找到的代码把经度和纬度转换成点,但是我不知道我做的是否正确,因为多边形没有绘制任何东西。这是我的密码。我在用电话,所以如果我没有使用密码标签,请原谅代码'谢谢你。我可以在mssql studio上显示数据。我想在java应用程序中查看相同的多边形,不知道这是否可行。是-通过JDBC连接到数据库,执行存储过程以检索所需的结果,然后用java绘制它们。Java不理解SQL Server的本地地理格式,因此在查询中使用ToString()将结果作为基于文本的WKT返回。然后可以解析坐标字符串。谢谢。我尝试从地理列中以字节检索数据,然后将其转换为字符串,但输出没有任何意义,因为它仍然是无法读取的字节格式。.不要以字节检索数据-使用ToString()将其检索为字符串,然后解析该字符串。我使用字符串a=resultSet.getString(“位置”);但将其解析为多边形会给我带来错误。我使用了多边形。addPoint(a);但它并不接受这些价值观。