2016-12-08 18 views
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()); 
} 

}

答えて

1

注意してください。

LocationManagerクラスから現在地を取得できると言われていますが、

例えば:

Location position = LocationManager.getLocationManager().getCurrentLocationSync(); 
+0

は、私が移動し、どのように自動的に私の場所にズームインするのです時はいつでも私の場所を示すマーカーが動くようになりましたどのように私は、同じコードを向上させるか、それが働いたあなたのシャイありがとうございました。 –

+0

マーカーを追加/削除することができますが、この同期アプローチの代わりに位置リスナーを使用することをお勧めします。 APIを使用してカメラの位置を制御することもできます –

関連する問題