首页 > 编程知识 正文

利息单据怎么写,利息单位厘是指多少

时间:2023-05-06 12:23:58 阅读:280491 作者:3797

要求:在一张经度为-180~180,纬度为-90~90(经纬度都保留6位小数)的平面地图上,根据任意给定的点(三个及三个以上)算出区域,然后再任意指定一个点,判断此点是否在该区域内,用java代码怎么实现呢,希望牛人能帮忙解答下,谢谢!

------------------------------------------------------------------------------------------------------------------

问题补充:

mavlarn 写道

为了简单点,每个点都当成int类型,也就是乘以1百万,这样,判断两个点是否在一个区域,就很容易判断啊,除以某一个值(区间个数),看看结果是否相等。

判断两个点是否在一个区域内?不理解你说的意思

完善下问题,因为三个及三个以上的经纬度构成的点,才能组成一封闭的区域,然后判断任意一点是否在其区域内(包括边界),楼上大哥说的方法感觉行不通啊

------------------------------------------------------------------------------------------------------------------

问题补充:

likedier 写道

使用第三方jar包 jts包 例子如下面

//一个面所包含的经纬度(标准的经纬*3600000)

String str = "POLYGON ((419164412

143703543, 419164481 143702737, 419164494 143702527,419164412

143703543))";

WKTReader wkt = new WKTReader();

Geometry geojudge1 = wkt.read(str);

int xpoi = 419164481;

int ypoi = 143702737;

Geometry geojudge2 = wkt.read("POINT(" +

xpoi + " " + ypoi + "))");

if(geojudge1.intersects(geojudge2)) {

System.out.println("xpoi、ypoi 在这个面里");

}

ps:在构成一个面的时候,第一个点的经纬度一定要与最后一个点的经纬度相同。否则会报错误:java.lang.IllegalArgumentException:

points must form a closed linestring

-------------------------

红色的地方是固定写法吗?我现在的经纬度格式如:103854.660414,191724.002882;

那我程序中是不是也可以这样写?不是很懂下面代码:

String str = "POLYGON ((103854.660414,191724.002882,

110662.694056,195827.911012,.....))

像我要判断的点(checkpoint:110662.694056,191724.002882)也是上面的格式,用geojudge1.intersects(geojudge2))

会有问题?

标准的经纬*3600000,是什么意思啊, 希望大哥能多多指教,感谢!同时也感谢其他的回答,谢谢!

------------------------------------------------------------------------------------------------------------------

问题补充:

likedier 写道

使用第三方jar包 jts包 例子如下面

//一个面所包含的经纬度(标准的经纬*3600000)

String str = "POLYGON ((419164412 143703543, 419164481 143702737,

419164494 143702527,419164412 143703543))";

WKTReader wkt = new WKTReader();

Geometry geojudge1 = wkt.read(str);

int xpoi = 419164481;

int ypoi = 143702737;

Geometry geojudge2 = wkt.read("POINT(" + xpoi + " " + ypoi +

"))");

if(geojudge1.intersects(geojudge2)) {

System.out.println("xpoi、ypoi 在这个面里");

}

ps:在构成一个面的时候,第一个点的经纬度一定要与最后一个点的经纬度相同。否则会报错误:java.lang.IllegalArgumentException:

points must form a closed linestring

问题补充下:

String str = "POLYGON ((419164412 143703543, 419164481 143702737,

419164494 143702527,419164412 143703543))";

上面这些经纬度对是有顺序要求的吧?

------解决方案--------------------------------------------------------

为了简单点,每个点都当成int类型,也就是乘以1百万,这样,判断两个点是否在一个区域,就很容易判断啊,除以某一个值(区间个数),看看结果是否相等。

------解决方案--------------------------------------------------------

使用第三方jar包 jts包 例子如下面

//一个面所包含的经纬度(标准的经纬*3600000)

String str = "POLYGON ((419164412 143703543, 419164481 143702737,

419164494 143702527,419164412 143703543))";

WKTReader wkt = new WKTReader();

Geometry geojudge1 = wkt.read(str);

int xpoi = 419164481;

int ypoi = 143702737;

Geometry geojudge2 = wkt.read("POINT(" + xpoi + " " + ypoi +

"))");

if(geojudge1.intersects(geojudge2)) {

System.out.println("xpoi、ypoi 在这个面里");

}

ps:在构成一个面的时候,第一个点的经纬度一定要与最后一个点的经纬度相同。否则会报错误:java.lang.IllegalArgumentException:

points must form a closed linestring

------解决方案--------------------------------------------------------

这个点朝任意方向画一条射线(比如正东方,比较好算)

然后看这个多边型有奇数还是偶数条边与这条射线相交。

------解决方案--------------------------------------------------------

可参考:

编写一个java程序,能够检查给定的java类文件是否正确解决思路 http://www.myexception.cn/java-other/355013.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。