0

ボタンを押すとテキストビューに表示される地図の中心 (google maps api v2) の緯度と経度を取得しようとしています。しかし、それはクラッシュし続けます。私はいくつかのことを試しましたが、これが私には最適に見えますが、ボタンを押すとクラッシュします:

次の行でクラッシュすると思います: MapView mapView = (MapView)findViewById(R.id.map); (onClickで他のすべてを削除しようとしたが、それでもクラッシュするため)

ジャワ:

public class Main extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
        final GoogleMap map = ((SupportMapFragment)  getSupportFragmentManager().findFragmentById(R.id.map))
                   .getMap();

        map.setMyLocationEnabled(true);


        final TextView latitudeTV = (TextView) findViewById(R.id.latitude);
        final TextView longitudeTV = (TextView) findViewById(R.id.longitude);

        Button buttonCoor = (Button) findViewById(R.id.getCoor);    
        buttonCoor.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                MapView mapView = (MapView)findViewById(R.id.map);
                GeoPoint mapCenter = mapView.getMapCenter();
                int latInt = mapCenter.getLatitudeE6();
                int lonInt = mapCenter.getLongitudeE6();
                latitudeTV.setText(latInt);
                longitudeTV.setText(lonInt);

            }
        });

    }

コードの何が問題になっていますか?

APIキーが原因でエミュレーターで実行できないため、logcat情報を取得できません。

ありがとうございました

アップデート:

これも試しましたが、同じ結果です(ボタンを押すとクラッシュします)

        MapView mapView = (MapView)findViewById(R.id.map);
    GeoPoint mapCenter = mapView.getProjection().fromPixels(
        mapView.getWidth()/2,
        mapView.getHeight()/2);

final int lat = mapCenter.getLatitudeE6();
final int lon = mapCenter.getLongitudeE6();
4

1 に答える 1

0

私は最終的にほぼ4時間を費やして解決しました、ハハ!これは私が最終的に得たものです:

final GoogleMap map = ((SupportMapFragment)  getSupportFragmentManager().findFragmentById(R.id.map)).getMap();  
...
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
Point point = new Point(width / 2, height / 2);
LatLng latLng = map.getProjection().fromScreenLocation(point);

latitudeTV.setText(String.valueOf(latLng));

この男のチュートリアルのおかげで:

http://patesush.blogspot.dk/2012/12/how-to-create-app-for-google-map-v2-in.html

于 2013-01-19T17:57:01.527 に答える