Java SEリード蜂地図開発例

4765 ワード

ガイドマップもJAVASEプラットフォームのサポートを提供し、デスクトップマップアプリケーションを開発することができ、JAVASEのプラットフォーム間特性のため、Java SEガイドマップ開発パッケージを使用して開発した地図アプリケーションはwindows、Lunix、Unix、Mac OSなどのプラットフォームで実行することができる.デスクトップアプリケーションの開発はモバイルアプリケーションの開発よりも容易で、画面、メモリなどの面ではモバイルプラットフォームよりも余裕があります.
簡単なアプリを使ってJava SEガイド蜂地図の開発を紹介します.例の断面図は次のとおりです.
プライマーマップ開発パッケージを設定Licenseプライマー開発パッケージLicenseは、Licenseファイルguidebeeの2つの部分に分かれている.Lic,もう一部はLicenseファイル対応の登録コードであり,プログラム実行前に初期化する必要がある
    LicenceManager licenceManager = LicenceManager.getInstance();
    
    ong keys[]= {0x41c0df1c118b1831L,0x21884a37bde642bcL,0x15c4d489531ac173L,
    
    0x5f9e69136c1e3268L,-0x3adaa84e455c5acL,0x2095f679b184dbdfL,};
    
    icenceManager.addLicence("GuidebeeMap_JavaSE", keys);    

Java SEプラットフォームの関連グラフィックシステムを設置してリード蜂地図の開発パッケージを実現し、設計時にできるだけプラットフォームの関係性を実現し、いくつかのプラットフォームの関連部分、例えばグラフィックシステムをインタフェース形式で定義し、例えばItont、IGraphics、AbstraactGraphicsFactory、IImage.これにより、特定のプラットフォームに適用する際に、プラットフォーム関連の実装を加えることで、同じライブラリを異なるプラットフォームに適用することができる.これらのプラットフォーム実装は、Java SEプラットフォーム、JavaSEFont、JavaSEGraphics、JavaSEGraphicsFactoryおよびJavaSEImageクラス定義などのソースコードで提供され、リード蜂地図APIの概要を参照することができる.地図オブジェクトの初期化とサービスコールバック関数の設定
   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);

上記コードは、地図作業スレッド数を16とし、一般的に給与スレッド数を増やすことで、地図ダウンロードおよび応答速度を向上させることができる.地図オブジェクトを作成し、表示領域(画面)のサイズを設定する.また、地図サービス、例えばクエリーアドレス、取得経路は非同期方式を採用し、setRoutingListener、setGeocodingListener、setReverseGeocodingListenerなどのコールバック関数を設定することによってアプリケーションに通知する.地図センターと地図タイプGeoLatLng center=new GeoLatLng(32.00616667、118.77777778);map.setCenterを設定する(center,4,MapType.MICROSOFTCHINA);地図スケーリングRasterMapのZoomIn、ZoomOutは地図を拡大縮小するために使用され、setZoomは地図レベルを設定することができる.地図平行移動RasterMapには地図平行移動に使用できる2つの方法があり、panToは地図を指定された経緯度座標に移動し、panDirection(dx,dy)地図を現在位置からdx,dy個の画素に平行移動します.次の例では、地図を上下、左、右に平行移動できます.アドレスクエリアドレスクエリ(またはアドレス符号化と呼ばれます)は、入力された地名です.(南京林業大学など)対応する緯度座標に変換して地図に表示する.すべての地図サービスは非同期方式で呼び出され、RasterMap.getLocationが呼び出される(address)の前に、結果を返すコールバック関数RasterMap.setGeocodingListenerを設定し、コールバック関数インタフェースをIGeocodingListenerと定義する必要がある.コールバック方法はpublic void done(String query,MapPoint[]result)は、クエリー結果が空でない場合、reusultはクエリー結果の配列です.例では、地図を最初のクエリー結果に移動します.MapAbc地図サービスについては、南京コード25のような都市コードを指定することもできる.public void getLocation(int citycode,String query,IGeocodingListener listener);パスクエリはRasterMapのgetDirection()メソッドはパスを検索します.アドレスを検索します.パスの検索結果もコールバック関数でアプリケーションに通知します.次の例は南京から北京までのパスを返します.戻り結果はMapDirectionに保存されます.MapDirectionにはパスの詳細情報が含まれています.パスの各ステップ、長さ、時間、方向などが含まれています.地図サービスは選択できます.Google地図サービス、CloudMade地図サービスを選択すると、中国ではMapAbc地図サービスを選択することもでき、デフォルトではGoogle地図サービスを使用します.getDirections()は3つのリロード関数を有し、例では文字記述方式を採用している.上記の例ではfrom:address 1 to:address 2のフォーマットを採用し、CloudMade地図サービスとMapAbc地図サービスでは経度1、緯度1、経度2、緯度2とフォーマットを採用しなければならない.混同を避けるために、下記のフォーマットを使用することができる.public void getDirection(GeoLatLng[] waypoints, IRoutingListener listener); ここでwaypointsは経路点座標配列経緯値であり、多点経路クエリーをサポートすることができる.また、MapAbc地図サービスについては、南京コード25のような都市コードを指定することもできる.public void getDirection(int citycode,String query,IroutingListener listener).ローカルクエリーローカルクエリーは、ホテル、郵便局などの指定されたエリア内のユーザーが興味を持っている場所をクエリーできます.その使用方法とアドレスクエリーは非常に似ています.ローカルクエリー方法public void getLocations(String address,int start,GeoLatLng center,GeoBounds bound,IGeocodingListener listener);中心点とクエリー領域を指定します.ローカルクエリーは複数回結果を返すことができます.startはクエリー結果の開始順序で、毎回結果がSearchOptionsで定義され、デフォルトは毎回4つ戻ります.地図サービスリード蜂地図サービスを選択するとデフォルトでGoogle地図サービスが使用されます.しかし、Googleサービスがオフラインの場合、MapAbcの地図サービスを選択することもできます.また、中国の地図にはオフセットがあることに注意してください.オフセットのない中国地図を使用したい場合は、地図オフセット補正アルゴリズムを採用し、CloudMade地図サービスを使用します.前述したように、案内蜂地図開発パッケージは、設計時に地図画像表示と地図サービスの2つの部分を相対的に独立した2つの部分に設計し、Google中国地図画像、Bing中国地図画像、MapAbc中国地図画像はオフセットのある地図画像である.CloudMade(OpenStreet)中国地図画像はオフセットなし.Google中国地図サービスでは、MapAbc中国地図サービスはオフセットあり、CloudMade地図サービスはオフセットなし.したがって、地図タイプと地図サービスタイプを選択する際には、オフセットありを選択するか、オフセットなしを選択します.そうしないと、地図は経路表示時や住所表示時に一致しません.以下のリストは合法ですの組み合わせ:
アドレス逆符号化アドレス逆符号化は緯度照会により対応する地名であり,文字列経緯度フォーマットを用いる場合,緯度が前,経度が後であることに注意し,逆であれば返す地名が空になるか,外国に走ることができるかである.結果も配列であり、一般的に最初の結果まで、後の結果はより大きな領域または比較的遠い地名である.その他、地図オフセット、オフラインマップ、カスタムマップ、オーバーラップカスタムレイヤがAndroidプラットフォームAndroidカスタムマップに参加できる例:QQマップ、Androidリードマップ開発例:オーバーラップカスタムレイヤ、Androidリードマップ開発例:オフラインマップ開発例.
TAG: JavaSEJAVASEjavase