私はAndroidアプリケーションを作成しており、Googleマップを画面に表示して実行しています。しかし、最初にマップをロードするときにポイントにスナップしたいと思います。私。ロンドン。Androidアプリケーション - animateTo()を使用するGoogle Maps APIを取得するにはどうすればよいですか?
私は検索し、さまざまな方法を試しましたが、動作させることができません。
パブリッククラスMinuteMapActivityは、これは私が書いたものであるMapActivity {
MapView mapView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//the methods on the map are initialised here
SnapToMap();
}
MapController SnapToMap = mapView.getController();
String coordinates[] = {"1.352566007", "103.78921587"}; //these values are from a website, how do I get the co-ordinates from google maps for i.e. London?
double lat = Double.parseDouble(coordinates[0]);
double lng = Double.parseDouble(coordinates[1]);
GeoPoint gp = new GeoPoint(
(int) (lat * 1E6),
(int) (lng * 1E6));
SnapToMap.animateTo(gp);
SnapToMap.setZoom(15);
mapView.invalidate();
}
を拡張します。私は何か間違っているのですか?実行時エラーが発生してもアプリケーションは終了します。 XMLレイアウトに何かを追加する必要がありますか?誰かがmapView.invalidate()が何をしているのかを説明することはできますか?私はmobiforge.com
LogCat結果から、このコードの一部を調達:
12-05 01:15:07.245: D/AndroidRuntime(18945): Shutting down VM
12-05 01:15:07.245: W/dalvikvm(18945): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
12-05 01:15:07.250: E/AndroidRuntime(18945): FATAL EXCEPTION: main
12-05 01:15:07.250: E/AndroidRuntime(18945): java.lang.RuntimeException: Unable to start activity ComponentInfo{application.project.minutemap/application.project.minutemap.MinuteMapActivity}: java.lang.NullPointerException
12-05 01:15:07.250: E/AndroidRuntime(18945): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
12-05 01:15:07.250: E/AndroidRuntime(18945): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
12-05 01:15:07.250: E/AndroidRuntime(18945): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
12-05 01:15:07.250: E/AndroidRuntime(18945): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
12-05 01:15:07.250: E/AndroidRuntime(18945): at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 01:15:07.250: E/AndroidRuntime(18945): at android.os.Looper.loop(Looper.java:130)
12-05 01:15:07.250: E/AndroidRuntime(18945): at android.app.ActivityThread.main(ActivityThread.java:3691)
12-05 01:15:07.250: E/AndroidRuntime(18945): at java.lang.reflect.Method.invokeNative(Native Method)
12-05 01:15:07.250: E/AndroidRuntime(18945): at java.lang.reflect.Method.invoke(Method.java:507)
12-05 01:15:07.250: E/AndroidRuntime(18945): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
12-05 01:15:07.250: E/AndroidRuntime(18945): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
12-05 01:15:07.250: E/AndroidRuntime(18945): at dalvik.system.NativeStart.main(Native Method)
12-05 01:15:07.250: E/AndroidRuntime(18945): Caused by: java.lang.NullPointerException
12-05 01:15:07.250: E/AndroidRuntime(18945): at application.project.minutemap.MinuteMapActivity.SnapToMap(MinuteMapActivity.java:61)
12-05 01:15:07.250: E/AndroidRuntime(18945): at application.project.minutemap.MinuteMapActivity.onCreate(MinuteMapActivity.java:24)
12-05 01:15:07.250: E/AndroidRuntime(18945): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-05 01:15:07.250: E/AndroidRuntime(18945): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
12-05 01:15:07.250: E/AndroidRuntime(18945): ... 11 more
ライン61でのNullPointerException:MapController snapToMap = mapView.getController()。
どうすればこの問題を解決できますか?
なぜこれを「iPhone」とタグ付けしましたか?私は間違っていたので、そのタグを削除しました。関連するトピックの質問のみにタグを付けます。 –
実行時エラーにより、何をすべきかがわかります。 logcatを見てスタックトレースを取得し、ここに投稿してください。 – Craigy
メソッド名と変数名の両方に 'SnapToMap'を使用していますか? Javaでは、変数は変数名とメソッド名の最初の文字として小文字を使用しています。また、あなたのコードの書式設定は混乱します。あなたが持っているものと一致するかどうか確認できますか?また、例外は、61行目のヌルポインタを指しているので、それ自身をすべてポストしてください。 – Craigy