javagis代码 qgis java

我现在正在学习用JAVA开发GIS应用了,很迷茫,求指教啊,前辈,应该如何进行学习了这样告诉你吧:JAVA最近几年在软件书写方面很流行 。但是JAVA开发GIS的书籍很少 。C还有C#开发的较多 。我一直用C#,感觉不错 。建议你用C# 。因为JAVA开发过程里面会遇到很多问题,没有办法和别人交流 。很容易灰心丧气 。我身边的人大多说是VB还有C# 。
基于java开发gis,介绍一下最常用开源的gis框架或者工具包?二维的主流的是GMAPjavagis代码,主要是一些二维地图的开发javagis代码,如果是简单的需求javagis代码,像百度,google的二次开发也很不错的,可以试试
三维主流的是WorldWind 是美国NASA研发的,源码公开的,全球可以下载,后期被大家完善javagis代码了很多插件,功能还不错,不过对编程功底要求比较高
arcGIS初学者打算用java做做一个简单的GIS系统arcgis 其实也很简单,arcgis sever主要是发布服务,而 arcgis for java等api 可以调用相关服务
建议到arcgis 中文官方论坛上看一下相关的介绍 , 下载几个简单的例子
java适合GIS软件的开发吗?java开发里最多的还是BS结构,java当然也可以做Gis的开发,我们公司就做了很多Gis的系统,就是用Java做的 。现在又挺多开源的、收费的Gis框架 。
一般情况下做CS结构的系统很少会用到Java的 , Java做的比较多的是大型的网站系统、信息管理系统等等 。Java的优势就是夸平台、速度快 。
你想像Google地图、某城市的旅游地图、交通地图啊等等的,这些系统的客户会出现在不同的位置、使用不同的机器、系统,不可能让客户使用前去安装一个客户端 , 那样是笨拙的、不方便的,所以这些系统就会做成BS机构的,这时候用Java做就有优势了 。
你说方不方便也是要看你做把地图做成什么程度了 , 像简单的拖拽、缩放、测量、定位、框选这些都很容易的,你要搞了复杂一些的话就要下些功夫去研究那些框架了 。这方面深层的帮助文档好像不多 , 毕竟这方面的应用不是那么普及 。
希望对您有帮助!
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);
ListPoint list = new ArrayListPoint();//泛型
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(ListPoint list)
{
//S = 0.5 * ( (x0*y1-x1*y0)(x1*y2-x2*y1)...(xn*y0-x0*yn) )
double area = 0.00;
for(int i = 0;ilist.size();i){
if(ilist.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求面积比较好,
请教JAVA实现GIS最短路径输出而输出最短路径的时候,在网上也进行了查阅,没发现什么标准的方法 , 于是在下面的实现中,我给出了一种能够想到的比较精简的方式:利用prev[]数组进行递归输出 。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
package graph.dijsktra;
import graph.model.Point;
import java.util.*;
/**
* Created by MHX on 2017/9/13.
*/
public class Dijkstra {
private int[][] map; // 地图结构保存
private int[][] edges; // 邻接矩阵
private int[] prev; // 前驱节点标号
private boolean[] s; // S集合中存放到起点已经算出最短路径的点
private int[] dist; // dist[i]表示起点到第i个节点的最短路径
private int pointNum; // 点的个数
private MapInteger, Point indexPointMap; // 标号和点的对应关系
private MapPoint, Integer pointIndexMap; // 点和标号的对应关系
private int v0; // 起点标号
private Point startPoint; // 起点
private Point endPoint; // 终点
private MapPoint, Point pointPointMap; // 保存点和权重的映射关系
private ListPoint allPoints; // 保存所有点
private int maxX; // x坐标的最大值
private int maxY; // y坐标的最大值
public Dijkstra(int map[][], Point startPoint, Point endPoint) {
this.maxX = map.length;
this.maxY = map[0].length;
this.pointNum = maxX * maxY;
this.map = map;
this.startPoint = startPoint;
this.endPoint = endPoint;
init();
dijkstra();
}
【javagis代码 qgis java】javagis代码的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于qgis java、javagis代码的信息别忘了在本站进行查找喔 。

    推荐阅读