最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

三行Java代碼實現(xiàn)計算多邊形的幾何中心點

 更新時間:2022年10月25日 10:39:02   作者:洛陽泰山  
因為工作需要計算采煤機工作面的中心點,如果套用數(shù)學(xué)的計算公式,用java去實現(xiàn),太麻煩了。本文將利用java幾何計算的工具包,幾行代碼就能求出多變形的中心,簡直yyds!還不快跟隨小編一起學(xué)起來

前言

因為工作設(shè)計到gis相關(guān)的內(nèi)容,需要計算采煤機工作面的中心點。如果套用數(shù)學(xué)的計算公式,用java去實現(xiàn),太多麻煩還費時比較久,于是我找到j(luò)ava幾何計算的工具包,幾行代碼就能求出多變形的中心,簡直yyds!!!

廢話不多說直接上代碼,然后再慢慢講解

示例代碼

首先再maven項目的pom文件中引入依賴

    <properties>
        <java.version>1.8</java.version>
        <maven.plugin.version>3.8.1</maven.plugin.version>
        <spring.boot.version>2.1.16.RELEASE</spring.boot.version>
        <bladex.project.version>2.6.0.RELEASE</bladex.project.version>
        <spring.platform.version>Cairo-SR8</spring.platform.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
        <geotools.version>28-SNAPSHOT</geotools.version>
    </properties> 
 
    <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-main</artifactId>
            <version>${geotools.version}</version>
     </dependency>

下面代碼以四邊形為例,計算面積和中心點

demo1

    public static void main(String[] args) {
        GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
        CoordinateList coords=new CoordinateList();
        coords.add(new Coordinate(3630789.1856605336, 3.943998533907477E7));
        coords.add(new Coordinate(3630480.3613995733, 3.944116440724006E7));
        coords.add(new Coordinate(3630128.8984496593, 3.944109300504929E7));
        coords.add(new Coordinate(3630408.0016770884, 3.943992775038134E7));
        //閉合
        coords.closeRing();
        Polygon polygon = geometryFactory.createPolygon(coords.toCoordinateArray());
        //輸出中心點
        System.out.println( polygon.getCentroid());
        //輸出多邊形面積
        System.out.println( polygon.getArea());
 
    }

demo2

    public static void main(String[] args) {
        GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
        //最后一個點和第一個相同完成多邊形的線段閉合
        Coordinate[] coords = new Coordinate[] {new Coordinate(1, 5),new Coordinate(1, 1),  new Coordinate(5,1) , new Coordinate(5, 5),new Coordinate(1, 5)};
        Polygon polygon = geometryFactory.createPolygon(coords);
        //輸出中心點
        System.out.println( polygon.getCentroid());
        //輸出多邊形面積
        System.out.println( polygon.getArea());
    }

以上代碼值得注意的有兩點:

1.坐標點的順序必須保證是幾何圖形的相鄰點,順時針相連或者逆時針都可以。

2.最后要完成閉合,閉合的方式即最后一個點必須和第一個點相同。

如圖所示,順序按照A->B>C>D,且最后閉合點為A點,即開始和最后輸入點為A點

除了四邊形形,五邊形,六邊形,不規(guī)則多邊形,都可以計算。方法和原理一樣。

輸出結(jié)果實例

demo1輸出

demo2輸出

到此這篇關(guān)于三行Java代碼實現(xiàn)計算多邊形的幾何中心點的文章就介紹到這了,更多相關(guān)Java計算多邊形的幾何中心點內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用JAVA反射,讀取數(shù)據(jù)庫表名,自動生成對應(yīng)實體類的操作

    利用JAVA反射,讀取數(shù)據(jù)庫表名,自動生成對應(yīng)實體類的操作

    這篇文章主要介紹了利用JAVA反射,讀取數(shù)據(jù)庫表名,自動生成對應(yīng)實體類的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java中用Mybatis插入mysql報主鍵重復(fù)的解決方案

    Java中用Mybatis插入mysql報主鍵重復(fù)的解決方案

    這篇文章主要介紹了Java中用Mybatis插入mysql報主鍵重復(fù)的解決方案,具有很好的參考價值,希望對大家有所幫助。
    2023-02-02
  • SpringBoot使用AES對JSON數(shù)據(jù)加密和解密的實現(xiàn)方法

    SpringBoot使用AES對JSON數(shù)據(jù)加密和解密的實現(xiàn)方法

    這篇文章主要介紹了SpringBoot使用AES對JSON數(shù)據(jù)加密和解密的實現(xiàn)方法,文章通過代碼示例介紹的非常詳細,對我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-08-08
  • java虛擬機深入學(xué)習(xí)之內(nèi)存管理機制

    java虛擬機深入學(xué)習(xí)之內(nèi)存管理機制

    java虛擬機在程序運行時將內(nèi)存劃分為多個區(qū)域,每個區(qū)域作用,生命周期各不相同,下面這篇文章主要給大家介紹了關(guān)于java虛擬機深入學(xué)習(xí)之內(nèi)存管理機制的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-11-11
  • java 異常的實例詳解

    java 異常的實例詳解

    這篇文章主要介紹了java 異常的實例詳解的相關(guān)資料,希望通過本文大家能徹底掌握java異常的使用方法,需要的朋友可以參考下
    2017-09-09
  • mybatis框架order by作為參數(shù)傳入時失效的解決

    mybatis框架order by作為參數(shù)傳入時失效的解決

    這篇文章主要介紹了mybatis框架order by作為參數(shù)傳入時失效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Fluent Mybatis實際開發(fā)中的優(yōu)勢對比

    Fluent Mybatis實際開發(fā)中的優(yōu)勢對比

    本文給大家介紹如何通過IQuery和IUpdate定義強大的動態(tài)SQL語句,給大家分享Fluent Mybatis實際開發(fā)中的優(yōu)勢講解,感興趣的朋友一起看看吧
    2021-08-08
  • JAVA實現(xiàn)漢字轉(zhuǎn)拼音功能代碼實例

    JAVA實現(xiàn)漢字轉(zhuǎn)拼音功能代碼實例

    這篇文章主要介紹了JAVA實現(xiàn)漢字轉(zhuǎn)拼音功能代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • MyBatis-Plus代碼生成器的使用詳解

    MyBatis-Plus代碼生成器的使用詳解

    這篇文章主要介紹了MyBatis-Plus代碼生成器的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Springboot如何基于assembly服務(wù)化實現(xiàn)打包

    Springboot如何基于assembly服務(wù)化實現(xiàn)打包

    這篇文章主要介紹了Springboot如何基于assembly服務(wù)化實現(xiàn)打包,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06

最新評論

绥阳县| 洞口县| 天峻县| 松潘县| 琼海市| 德安县| 孝感市| 九龙县| 丽江市| 临城县| 化德县| 灌南县| 枞阳县| 方城县| 开封县| 浦城县| 高邮市| 岳西县| 蒲城县| 资中县| 平乐县| 确山县| 进贤县| 马关县| 鸡西市| 红桥区| 裕民县| 兴仁县| 栾川县| 炉霍县| 墨玉县| 迭部县| 岳阳市| 清河县| 黑龙江省| 顺义区| 姚安县| 中牟县| 洪洞县| 威信县| 黄陵县|