1
私はコードネーム1を使用してその中にGoogleマップを持つアプリを開発しています。アプリを開いたときに、現在の場所を取得する方法を教えてください。 。シミュレータは、シミュレーションを実行しているのに対し、デバイスはネイティブのマップを実行しているため、デバイス上の現在の場所を使用して強調表示されることをコードネーム1のGoogleマップ
static Location lastKnownLocation;
@Override
protected void beforeMap(Form f) {
MapContainer mapContainer = new MapContainer(new GoogleMapsProvider("AIzaSyCyy_vOWn3DvR3Y8pzAWUmKTzBaDa81Tfc"));
lastKnownLocation = LocationManager.getLocationManager().getLastKnownLocation();
Style s = new Style();
s.setBgTransparency(0);
s.setFgColor(0);
mapContainer.addMarker(FontImage.createMaterial(FontImage.MATERIAL_MY_LOCATION, s).toEncodedImage(), new Coord(lastKnownLocation.getLatitude(), lastKnownLocation.getLongitude()), "", "", evt -> {
ToastBar.showErrorMessage(lastKnownLocation.toString());
});
mapContainer.addTapListener(evt -> {
Coord coord = mapContainer.getCoordAtPosition(evt.getX(), evt.getY());
mapContainer.addMarker(FontImage.createMaterial(FontImage.MATERIAL_LOCATION_ON, s).toEncodedImage(), coord, "", "", null);
});
f.add(BorderLayout.CENTER, mapContainer);
FloatingActionButton fab = FloatingActionButton.createFAB(FontImage.MATERIAL_ADD);
fab.addActionListener(e -> {
ParseObject object = ParseObject.create("Geo");
object.put("current", new ParseGeoPoint(lastKnownLocation.getLatitude(), lastKnownLocation.getLongitude()));
if (ParseUser.getCurrent() != null)
object.put("user", ParseUser.getCurrent());
try {
object.save();
ToastBar.showErrorMessage("Geo Sent");
} catch (ParseException ex) {
ex.printStackTrace();
ToastBar.showErrorMessage(ex.getMessage());
}
});
fab.bindFabToContainer(f.getContentPane());
}
}
は、私が移動し、どのように自動的に私の場所にズームインするのです時はいつでも私の場所を示すマーカーが動くようになりましたどのように私は、同じコードを向上させるか、それが働いたあなたのシャイありがとうございました。 –
マーカーを追加/削除することができますが、この同期アプローチの代わりに位置リスナーを使用することをお勧めします。 APIを使用してカメラの位置を制御することもできます –