當前位置:首頁 » 編程語言 » javashp

javashp

發布時間: 2022-08-22 05:00:34

Ⅰ 請求java問題代碼

import java.util.ArrayList;
import java.util.List;

public class ShapeColection {
private List<Shape> list = null;

public ShapeColection() {
list = new ArrayList<Shape>();
}

public Shape getShape(int index) {
if (list == null || list.size() == 0)
return null;

return list.get(index);
}

// 給集合添加元素
public void addShape(Shape shape) {
list.add(shape);
}

//
public int getSize() {
return list == null ? 0 : list.size();
}

public static void main(String[] args) {
ShapeColection sc = new ShapeColection();

Shape s1 = new Shape("正方形","紅色");
Shape s2 = new Shape("長方形","紅色");
Shape s3 = new Shape("正方形","綠色");
Shape s4 = new Shape("長方形","綠色");
Shape s5 = new Shape("三角形","黃色");

sc.addShape(s1);
sc.addShape(s2);
sc.addShape(s3);
sc.addShape(s4);
sc.addShape(s5);

for (int i = 0; i < sc.getSize(); i++) {
Shape s = sc.getShape(i);
if ((s.getColor().equals("紅色") && s.getShp().equals("正方形"))
|| (s.getColor().equals("綠色") && s.getShp().equals("長方形"))) {
System.out.println(s.toString()+i);
}

}
}
}

class Shape {
private String shp; // 形狀

private String color; // 顏色

public Shape() {
this.shp = "正方形";
this.color = "紅色";
}

public Shape(String shp, String color) {
this.shp = shp;
this.color = color;
}

public String getColor() {
return color;
}

public String getShp() {
return shp;
}

public String toString() {
return this.color + this.shp;
}
}

Ⅱ 如何用SED java api實現將shp文件存入orale中

我也是剛學gis,關注中.....

Ⅲ java如何編程定義一個shape抽象類,具有求面積、求周長、顯示輸出功能

樓主是不是想利用Java求shape文件中 面的面積,也就是polygon或者multipolygon的面積。實際上就是不規則多邊形的面積,如果不用什麼函數庫(geotools)的話,還是有現成的公式的,非是通過定積分推倒了一個公式而已。
需要注意的是:
點要按照逆時針或者順時針的順序添加進list
package geodemo;
import java.awt.Point;
import java.util.ArrayList;
import java.util.List;
import org.opengis.feature.simple.SimpleFeature;
import com.vividsolutions.jts.geom.Geometry;
public class GetArea{
public static void main(String args[]){
Point p1 = new Point(1,0);
Point p2 = new Point(12,0);
Point p3 = new Point(10,10);
Point p4 = new Point(0,10);
Point p5= new Point(3,3);
List<Point> list = new ArrayList<Point>();//泛型
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
GetArea t = new GetArea();
double area = t.getArea(list);
System.out.println(area);
}
public double getArea(List<Point> list)
{
//S = 0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) )
double area = 0.00;
for(int i = 0;i<list.size();i++){
if(i<list.size()-1){
Point p1 = list.get(i);//得到p1坐標對(x,y)
Point p2 = list.get(i+1); //得到p2坐標對(x,y)
area += p1.getX()*p2.getY() - p2.getX()*p1.getY();
}else{
Point pn = list.get(i);
Point p0 = list.get(0);
area += pn.getX()*p0.getY()- p0.getX()*pn.getY();
}
}
area = area/2.00;
return area;
}
}
原理如下:shapefile文件面文件也是由一個個坐標點構成的,無論是不規則凸多邊形還凹多邊形,都可以分成多個三角形,然後就是按一定順序求解三角形面積了。我把網上的一個例子修改了下,加上了泛型(廣泛的類型,類似int,double),點是五個,你可以在此基礎上修改,讀取shp文件,把坐標提取出來,然後再計算。
至於求周長之類的就是把公式變成代碼的過程,本人強烈建議還是用arcgis求面積比較好,

Ⅳ andriod中怎麼用java代碼將數據寫入shp

新建項目,將下載的so 與相關資源導入,相關目錄結構如下
注意gdal的相關包名不要修改,避免so讀取不到相應的類。
簡單寫個shp,注意導包,要導入org.gdal下面相關的類
用Arcgis MapView載入shp文件效果

Ⅳ java多態中的 找不到符號問題

for(Shape shp : s)
shp.draw();
shp.p();//超出了for語句范圍,shp當然是找不到了~~

上面這段代碼中的第三行超出了局部變數作用域了,請改成:
for(Shape shp : s) {
shp.draw();
shp.p();
}

如果沒有花括弧,那麼for循環只能跟一個語句塊!

Ⅵ IE中如何顯示.SHP文件。java web開發 要求客戶端能夠預覽.SHP格式文件。冥思苦想沒有結果,望高手幫忙!!

關注一下,或許會用到

熱點內容
如何qq空間訪問許可權 發布:2025-01-18 15:49:30 瀏覽:531
matlab遺傳演算法約束 發布:2025-01-18 15:31:33 瀏覽:909
果凍java 發布:2025-01-18 15:25:59 瀏覽:695
電腦與時間伺服器同步間隔 發布:2025-01-18 15:21:28 瀏覽:54
蘋果手機apple登錄密碼在手機哪裡 發布:2025-01-18 15:13:43 瀏覽:380
吃雞去哪裡下手游安卓 發布:2025-01-18 15:10:59 瀏覽:668
東方財富dk指標源碼 發布:2025-01-18 14:45:53 瀏覽:435
陌陌登陸密碼是什麼 發布:2025-01-18 14:36:54 瀏覽:848
海龜編譯器代碼 發布:2025-01-18 14:16:51 瀏覽:34
大閘蟹網站源碼 發布:2025-01-18 14:12:19 瀏覽:105