J2ME/Android/ブラックベリー-走行方向のルート拠点
-
19-09-2019 - |
質問
Android1.0がありました。google.googlenav名前空間の駆動方:
ルートの改善Googleの走行方向
が新しいSDKで削除された一部の理由は---
Android:DrivingDirections除去ソフト、ハードカプセル、錠剤1.0-どのようにしていますので1.5/1.6?
BlackBerryもありますがApiのようなもの:
どのようにルート地ブラックベリー?
csie-twを回避策(クエgmapsのためのkmlファイルを構文解析されます。
Android-運転方向(ルートパス)
も アンドレア 作 DrivingDirectionsヘルパークラス Android.
私は少しのヘルパーのためにこの機能は、j2meいたいと思いシェア私のサンプルAndroid、BlackBerry.
更新
この記のコメントで正式に許可 Google Maps Apiのサービス :
Googleマップ/Google Earth Apiのサービス
最終更新:May27,2009年
...
10.ライセンス制限がない。場合を除いて明示的に許可条件の下でいる場合を除き受けた当社の書面による事前の許可からGoogleは、対象となる期に応じてのプロバイダの特定のコンテンツ)、ライセンスについてはお守を制限します。場合を除いて明示的に認められる第7項またはマップApiの書類が必要なものがありまい):
...
10.9サービスを利用またはコンテンツを他の製品、システム、本プライバシーポリシーまたは接続:
(a)リアルタイムナビゲーションやルート案内を含むものに限定されないバイタルート案内では同期の位置をユーザーセンサーの有効デバイス;
と利用できない場合があります一部のアプリケーションで何とか、少なくともAndroid)...から Geocodeげます。NET会話:
ことが許可されないよAPIの利用します。べきではないのひ Googleマップをgeocodes.またブロックサービスな 自動返します。
Bretテイラー
製品マネージャ、Googleマップ
いることに感謝の他の代替および/またはご提案!
よろしく!
解決
J2ME地図ルートプロバイダ
maps.google.com はナビゲーションサービスを提供できるまでルート情報 KML 形式です。
めのkmlファイルを形成する必要があるurlを開始、先拠点:
public static String getUrl(double fromLat, double fromLon,
double toLat, double toLon) {// connect to map web service
StringBuffer urlString = new StringBuffer();
urlString.append("http://maps.google.com/maps?f=d&hl=en");
urlString.append("&saddr=");// from
urlString.append(Double.toString(fromLat));
urlString.append(",");
urlString.append(Double.toString(fromLon));
urlString.append("&daddr=");// to
urlString.append(Double.toString(toLat));
urlString.append(",");
urlString.append(Double.toString(toLon));
urlString.append("&ie=UTF8&0&om=0&output=kml");
return urlString.toString();
}
次る必要がありまxml構文解析(実SAXParser)の記入とデータ構造:
public class Point {
String mName;
String mDescription;
String mIconUrl;
double mLatitude;
double mLongitude;
}
public class Road {
public String mName;
public String mDescription;
public int mColor;
public int mWidth;
public double[][] mRoute = new double[][] {};
public Point[] mPoints = new Point[] {};
}
ネットワーク接続の実施方法をAndroid、Blackberry、そして最初の形式のurl:
public static String getUrl(double fromLat, double fromLon,
double toLat, double toLon)
それを接続することInputStream.
そしてこのInputStream、解析されたデータ構造:
public static Road getRoute(InputStream is)
フル-ソースコード RoadProvider.java
ブラックベリー
class MapPathScreen extends MainScreen {
MapControl map;
Road mRoad = new Road();
public MapPathScreen() {
double fromLat = 49.85, fromLon = 24.016667;
double toLat = 50.45, toLon = 30.523333;
String url = RoadProvider.getUrl(fromLat, fromLon, toLat, toLon);
InputStream is = getConnection(url);
mRoad = RoadProvider.getRoute(is);
map = new MapControl();
add(new LabelField(mRoad.mName));
add(new LabelField(mRoad.mDescription));
add(map);
}
protected void onUiEngineAttached(boolean attached) {
super.onUiEngineAttached(attached);
if (attached) {
map.drawPath(mRoad);
}
}
private InputStream getConnection(String url) {
HttpConnection urlConnection = null;
InputStream is = null;
try {
urlConnection = (HttpConnection) Connector.open(url);
urlConnection.setRequestMethod("GET");
is = urlConnection.openInputStream();
} catch (IOException e) {
e.printStackTrace();
}
return is;
}
}
参照フルコード J2MEMapRouteBlackBerryEx Googleコード
Android
public class MapRouteActivity extends MapActivity {
LinearLayout linearLayout;
MapView mapView;
private Road mRoad;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
new Thread() {
@Override
public void run() {
double fromLat = 49.85, fromLon = 24.016667;
double toLat = 50.45, toLon = 30.523333;
String url = RoadProvider
.getUrl(fromLat, fromLon, toLat, toLon);
InputStream is = getConnection(url);
mRoad = RoadProvider.getRoute(is);
mHandler.sendEmptyMessage(0);
}
}.start();
}
Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
TextView textView = (TextView) findViewById(R.id.description);
textView.setText(mRoad.mName + " " + mRoad.mDescription);
MapOverlay mapOverlay = new MapOverlay(mRoad, mapView);
List<Overlay> listOfOverlays = mapView.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
mapView.invalidate();
};
};
private InputStream getConnection(String url) {
InputStream is = null;
try {
URLConnection conn = new URL(url).openConnection();
is = conn.getInputStream();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return is;
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
参照フルコード J2MEMapRouteAndroidEx Googleコード