本篇文章给大家谈谈java调用gis地图,以及java 地图gis开发对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
目录一览:
- 1、请教JAVA实现GIS最短路径输出
- 2、如何同时连接ArcGIS与百度地图Android SDK
- 3、基于java开发gis,介绍一下最常用开源的gis框架或者工具包?
- 4、如何用mapinfo+java+数据库做一个网上地图
- 5、我现在正在学习用JAVA开发GIS应用了,很迷茫,求指教啊,前辈,应该如何进行学习了
请教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();
}
如何同时连接ArcGIS与百度地图Android SDK
两个SDK都是将其API库封装成so动态链接库供上层应用(Java)调用,但两者在具体实现上存在差异,也是这个差异导致将两个SDK集成到一个应用中时容易产生强退的bug,这个问题也曾很大的困扰了我一天,特此分享给大家。 ☆ 先看看百度地图 for Android SDK的动态库调用 *** : 之一步:在工程里新建libs文件夹,将开发包里的baidumapapi_v2_1_2.jar拷贝到libs根目录下,将libapp_BaiduMapApplib_v2_1_2.so和libvi_voslib.so 拷贝到libs\armeabi目录下(官网demo里已有这三个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。第二步:在工程属性-Java Build Path-Libraries中选择“Add External JARs”,选定baidumapapi_v2_1_2.jar,确定后返回。 通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。 ☆ 再看看ArcGIS for Android SDK的动态库调用 *** 其是通过在Eclipse集成开发环境上安装ArcGIS插件来实现的,具体如何安装就不赘述了。当 ArcGIS开发插件安装完成后,在新建工程的选项中就可以看到【ArcGIS Project for Android】和【ArcGIS Samples for Android】的菜单,ArcGIS Android API的开发环境就顺利配置完成了。 然后你可以New -- Project --ArcGIS Project for Android来新建一个带其动态链接库的Android应用程序。例如创建一个test工程,创建成功后如下图所示。本例采用最新的ArcGIS for Android SDK 10.1。小结:以上两种 *** ,从用户便捷性上来说,ArcGIS 更加“智能”一些,将动态链接库添加的工作,直接已经集成到new project里面,对于初学者来说,可以完全忽略这些细节而直接进入关键开发工作;百度地图的SDK相对来说,更加灵活一些,给用户更大的空间。 但也就是这两种方式的差异导致了当两个SDK结合到一个程序里的时候就容易出错。细心的朋友应该可以发现一个问题,百度地图SDK里的动态链接库只有一个armeabi文件夹,但是ArcGIS SDK却有两个文件夹,armeabi和armeabi-v7a,其中均有一个libruntimecore_java.so库文件。 这两个文件夹是何用意呢?armeabi和armeabi-v7a是表示cpu的类型,不同的cpu的特性不一样,armeabi就是针对普通的或旧的arm cpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm cpu。简单来说,Android为了适应五花八门各式各样的智能终端硬件环境,采用了不同的配置对应不同文件夹的调用模式,好比大家熟悉的不同屏幕dpi会调用不同的图片文件夹,如下图。那么关键的来了,当我们严格按照两个SDK添加链接库后,百度地图三个so库文件就存放在armeabi文件夹下,而armeabi-v7a文件夹下并没有百度地图相应的so库,但ArcGIS却在两个文件夹下都有相应的so库,这里不得不说,Esri作为GIS、地图领域的世界领头羊,考虑的还是比较细。 然后编译程序时,Eclipse会在两个文件夹里搜索相应的库文件,而只会根据Android手机的具体情况拷贝相应文件夹下的库文件。当今绝大多数的手机已经具备了针对有浮点运算或高级扩展功能的arm cpu,所以在手机根目录下/data/data/(program_name)/lib下只会拷贝armeabi-v7a文件夹下的库文件,而此时并不会有百度地图的so库文件。从而会导致百度地图SDK程序直接崩溃,并报出java.lang.ExceptionInInitializerError错误。 明白了原理,解决办法就十分简单了,将armeabi文件夹下百度地图的so库文件拷贝到armeabi-v7a文件夹下,如下图:重新clean一下project,重新编译后程序就可以正常调用百度地图和ArcGIS两个SDK库了。
基于java开发gis,介绍一下最常用开源的gis框架或者工具包?
二维的主流的是GMAP,主要是一些二维地图的开发,如果是简单的需求,像百度,google的二次开发也很不错的,可以试试
三维主流的是WorldWind 是美国NASA研发的,源码公开的,全球可以下载,后期被大家完善了很多插件,功能还不错,不过对编程功底要求比较高
如何用mapinfo+java+数据库做一个网上地图
目前影响较大的国外地理服务器有Mapinfo MapXtreme、MapObject、Autodesk Map Guide、ArcIMS、Argcgisserver以及国内的Super Map等。由于考虑到我们是采用Java语言开发基于Web方式的Gis应用,最终对比之后采用Mapinfo公司的MapXtreme Java作为开发控件进行地理应用的二次开发工具。
MapXtreme Java 是目前用于 Internet 或企业 Intranet 唯一的 100% 纯 Java 的地图服务器。 MapInfo MapXtreme Java 与 J2EE 兼容,为开发人员开发应用提供了无与伦比的灵活性。 MapXtreme Java 向应用开发商提供了一个高度可视化的、直观的组件,方便地图功能集成到任何 Web 应用中
我现在正在学习用JAVA开发GIS应用了,很迷茫,求指教啊,前辈,应该如何进行学习了
这样告诉你吧:JAVA最近几年在软件书写方面很流行。但是JAVA开发GIS的书籍很少。C++还有C#开发的较多。我一直用C#,感觉不错。建议你用C#。因为JAVA开发过程里面会遇到很多问题,没有办法和别人交流。很容易灰心丧气。我身边的人大多说是VB还有C#。
关于java调用gis地图和java 地图gis开发的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。