2015-06-23 46 views

回答

3

使用開源庫調用 「utils的」 http://www.geotelematic.com/javadocs/org/opengts/util/package-summary.html

布爾isPointInside( GeoPoint gp) 如果指定點位於多邊形內,則返回true

。 包括OpenGts Proyect:http://www.opengts.org/

import org.opengts.util.GeoPoint; 

import org.opengts.util.GeoPolygon; 

使用此snipet檢查點是一個多邊形

GeoPolygon fence = new GeoPolygon(// Define a Fence Polygon 
      new GeoPoint(-31.414547, -64.488178), 
      new GeoPoint(-31.415579, -64.496261), 
      new GeoPoint(-31.411513, -64.495720), 
      new GeoPoint(-31.408726, -64.489549), 
      new GeoPoint(-31.411898, -64.484406) 
      ); 

    GeoPoint testgp1 = new GeoPoint(-31.411753, -64.489922);// Point1 inside 
    GeoPoint testgp2 = new GeoPoint(-31.413962, -64.486445);// Point2 outside 


    boolean inzone = fence.isPointInside(testgp1); 
    System.out.println ("Point1 is inside of polygon= "+inzone); 
    inzone = fence.isPointInside(testgp2); 
    System.out.println ("Point2 is inside of polygon= "+inzone); 

結果裏面:

Point1 is inside of polygon= true 
Point1 is inside of polygon= false 
+0

我想這些庫沒有單獨的maven jar包含這個「utils」包,但我會試試看,謝謝! – sytolk

+0

沒有。 在我的情況下,我只在我的項目中包含'org.opengts.util'文件夾。 如果您只需要函數'isPointInside()',這取決於'GeoPoint.java/GeoPolygon.java'。 但我建議包括整個軟件包,並有功能,方法和類非常有用。 正如你可以看到,如果你看看。作者指出:「包含各種常用工具,使編程更容易一些。」 – TronSoft

+0

像openmap一樣的想法我認爲opengts的初始代碼有很常見的想法,比如https://github.com/OpenMap-java/openmap/blob/master/src/openmap/com/bbn/openmap/geo/Intersection。 java的 – sytolk