当前位置:首页 » 编程语言 » 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格式文件。冥思苦想没有结果,望高手帮忙!!

关注一下,或许会用到

热点内容
文件夹怎么打开 发布:2025-01-18 18:47:07 浏览:296
杉德卡卡号和密码看哪里 发布:2025-01-18 18:43:27 浏览:712
android返回退出 发布:2025-01-18 18:43:26 浏览:601
linux采集视频 发布:2025-01-18 18:38:38 浏览:638
差异度算法 发布:2025-01-18 18:34:27 浏览:698
电脑全套配置有哪些 发布:2025-01-18 18:32:39 浏览:145
新项目源码 发布:2025-01-18 18:14:48 浏览:517
脚本设计图 发布:2025-01-18 18:06:17 浏览:601
内部存储空间不足总是跳出来 发布:2025-01-18 17:56:22 浏览:951
安卓光遇更新后魔法商店去哪里了 发布:2025-01-18 17:55:47 浏览:133