本篇文章給大家談談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開發的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。