新聞中心
引路蜂地圖也提供對Java SE平臺的支持,可以開發(fā)桌面地圖應(yīng)用,由于Java SE的跨平臺特性,使用Java SE引路蜂地圖開發(fā)包開發(fā)的地圖應(yīng)用可以運行于Windows ,Lunix,Unix,Mac OS等平臺。開發(fā)桌面應(yīng)用比開發(fā)移動應(yīng)用要容易的多,屏幕,內(nèi)存等方面都比移動平臺要寬裕的多。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、威遠網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為威遠等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
下面使用一個簡單的應(yīng)用來介紹一下Java SE引路蜂地圖開發(fā)。示例截圖如下
設(shè)置引路蜂地圖開發(fā)包License
引路蜂開發(fā)包License分兩部分,一個為License文件guidebee.lic ,另一部分為License文件對應(yīng)的注冊碼,需在程序運行前初始化
- LicenceManager licenceManager = LicenceManager.getInstance();
- ong keys[]= {0x41c0df1c118b1831L,0x21884a37bde642bcL,0x15c4d489531ac173L,
- 0x5f9e69136c1e3268L,-0x3adaa84e455c5acL,0x2095f679b184dbdfL,};
- icenceManager.addLicence("GuidebeeMap_JavaSE", keys);
設(shè)置Java SE平臺相關(guān)圖形系統(tǒng)實現(xiàn)
引路蜂地圖開發(fā)包,在設(shè)計時盡量做到平臺無關(guān)性,將一些平臺相關(guān)的部分,如圖形系統(tǒng)以接口形式定義,如IFont,IGraphics,AbstractGraphicsFactory,IImage。這樣在應(yīng)用到具體平臺時,加上平臺相關(guān)的實現(xiàn),可以實現(xiàn)同一個庫應(yīng)用到不同的平臺。這些平臺實現(xiàn)是以源碼提供的,如在Java SE平臺,提供了JavaSEFont,JavaSEGraphics,JavaSEGraphicsFactory和JavaSEImage類定義,可以參見引路蜂地圖API概述。
初始化地圖對象及設(shè)置服務(wù)回調(diào)函數(shù)
- MapConfiguration.setParameter(MapConfiguration.WORKER_THREAD_NUMBER, 16);
- mapTileDownloadManager = new MapTileDownloadManager(this);
- map = new RasterMap(2048, 2048, mapTileDownloadManager);
- map.setScreenSize(mapLabel.getWidth(), mapLabel.getHeight());
- mapTileDownloadManager.start();
- map.setMapDrawingListener(this);
- GeoLatLng center = new GeoLatLng(32.0616667, 118.7777778);
- map.setCenter(center, 4, MapType.MICROSOFTCHINA);
- map.setRoutingListener(this);
- map.setGeocodingListener(this);
- map.setReverseGeocodingListener(this);
上述代碼設(shè)置地圖工作線程數(shù)為16,一般來說增加工資線程數(shù)可以提高地圖下載及響應(yīng)速度。
創(chuàng)建地圖對象,設(shè)置顯示區(qū)域(屏幕)大小。此外地圖服務(wù)如查詢地址,獲取路徑都是采用異步方式,通過設(shè)置回調(diào)函數(shù)如setRoutingListener,setGeocodingListener,setReverseGeocodingListener等來通知應(yīng)用 。
設(shè)置地圖中心和地圖類型
- GeoLatLng center = new GeoLatLng(32.0616667, 118.7777778);
- map.setCenter(center, 4, MapType.MICROSOFTCHINA);
地圖縮放
RasterMap的 ZoomIn,ZoomOut用來放大和縮小地圖,setZoom可以設(shè)置地圖級別。
地圖平移
RasterMap 有兩個方法可以用于平移地圖,panTo 將地圖移動到指定經(jīng)緯度坐標,panDirection(dx,dy) 將地圖從當前位置平移dx,dy 個象素。 下列示例可以上,下,左,右平移地圖。
地址查詢
地址查詢(或稱為地址編碼)是將輸入的地名(如南京林業(yè)大學(xué))轉(zhuǎn)換成對應(yīng)的經(jīng)緯度坐標然后將其顯示在地圖上。
所有的地圖服務(wù)都是采用異步方式調(diào)用,在調(diào)用RasterMap.getLocation(address)前,需要設(shè)置好返回結(jié)果時的回調(diào)函數(shù)RasterMap.setGeocodingListener,回調(diào)函數(shù)接口定義為IGeocodingListener。 回調(diào)方法為public void done(String query,MapPoint[] result) ,如果查詢結(jié)果不為空,則reusult 為查詢結(jié)果的數(shù)組。示例中將地圖轉(zhuǎn)到第一個查詢結(jié)果。
對于MapAbc 地圖服務(wù),還可以指定城市編碼,如南京編碼為25。public void getLocation(int citycode,String query, IGeocodingListener listener);
路徑查詢
可以通過RasterMap的getDirection()方法來查詢路徑,和查詢地址類似,路徑查詢的結(jié)果也是通過回調(diào)函數(shù)的方式來通知應(yīng)用程序的,下面的例子返回南京到北京的路徑。返回結(jié)果存放在MapDirection中,MapDirection包含了路徑的詳細信息,包括路徑的每個步驟,長度,時間,方向等。
地圖服務(wù)可以選擇使用Google 地圖服務(wù),CloudMade地圖服務(wù),在中國還可能選擇MapAbc地圖服務(wù),缺省使用Google 地圖服務(wù)。
getDirections()具有三個重載函數(shù),例子中是采用的文字描述方式。上述示例采用了from: address1 to: address2 的格式, CloudMade地圖服務(wù)和MapAbc地圖服務(wù)則必需采用 經(jīng)度1,緯度1,經(jīng)度2,緯度2和格式。
為避免混淆,可以使用下述格式。
public void getDirection(GeoLatLng[] waypoints, IRoutingListener listener);
其中 waypoints 為途徑點坐標數(shù)組經(jīng)緯值,可以支持多點路徑查詢。
此外對于MapAbc 地圖服務(wù),還可以指定城市編碼,如南京編碼為25。
public void getDirection(int citycode,String query, IRoutingListener listener);
本地查詢
本地查詢可以查詢指定區(qū)域內(nèi)諸如賓館,郵局等用戶感興趣的地方。其使用方法和地址查詢非常類似。
本地查詢方法public void getLocations(String address,int start,GeoLatLng center,GeoBounds bound, IGeocodingListener listener);
指定中心點和查詢區(qū)域。本地查詢可以多次返回結(jié)果,start為查詢結(jié)果起始順序,每次返回結(jié)果在SearchOptions 中定義,缺省每次返回4個。
選擇地圖服務(wù)
引路蜂地圖服務(wù)缺省使用Google地圖服務(wù),但你也可以選擇其它地圖服務(wù),比方說當Google服務(wù)離線時,您可以選擇MapAbc的地圖服務(wù),另外要注意的是中國地圖是有偏移的。如果想使用無偏移的中國地圖,一是采用地圖偏移校正算法,另外一個是使用CloudMade地圖服務(wù)。
所前所述,引路蜂地圖開發(fā)包在設(shè)計時將地圖圖片顯示和地圖服務(wù)兩部分設(shè)計成相對獨立的兩部分,Google中國地圖圖片,Bing中國地圖圖片,MapAbc中國地圖圖片是有偏移的地圖圖片,CloudMade(OpenStreet)中國地圖圖片是無偏移的。而Google中國地圖服務(wù),MapAbc中國地圖服務(wù)是有偏移,CloudMade地圖服務(wù)是無偏移的。所以在選擇地圖類型和地圖服務(wù)類型時,要么都選擇有偏移,要么都選擇無偏移。否則地圖在顯示路徑時或地址時就不匹配。
下面列表是合法的組合:
地址反編碼
地址反編碼是通過經(jīng)緯度查詢對應(yīng)的地名,
注意使用字符串經(jīng)緯度格式時,緯度在前,經(jīng)度在后,如果反了,則返回的地名或能為空或都跑到外國去了。結(jié)果也是一個數(shù)組,一般到第一個結(jié)果,后面結(jié)果是更大的區(qū)域或是距離相對較遠的地名。
其它
其它如地圖偏移,離線地圖,自定義地圖,疊加自定義圖層可以參加Android平臺Android自定義地圖示例:QQ地圖,Android引路蜂地圖開發(fā)示例:疊加自定義圖層 ,Android引路蜂地圖開發(fā)示例:離線地圖示例。
Java SE 平臺
文檔下載:點擊
開發(fā)庫:點擊
實例代碼:點擊
開發(fā)指南:點擊
原文鏈接:http://blog.csdn.net/mapdigit/article/details/7742550
名稱欄目:JavaSE引路蜂地圖開發(fā)示例
文章位置:http://www.fisionsoft.com.cn/article/djgeops.html


咨詢
建站咨詢
