如何将经度和经度传递给android中的google maps API?

时间:2017-03-02 07:10:30

标签: android google-maps google-maps-api-3

我在谷歌地图API中仍然是新手,我很难将纬度和经度从第一个活动传递到第二个活动。 现在当我在第一个活动中点击一个按钮时,它会将纬度和经度值传递给包含谷歌地图的第二个活动。

第一项活动:

apotek.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            double lat = -7.94203712;
    double lng = 112.60936975;
    Bundle bundle = new Bundle();
    Intent intent = new Intent(Menu1.this, menu_cari.class);
    bundle.putDouble(menu_cari.TAG1,lat);
    bundle.putDouble(menu_cari.TAG2, lng);
    startActivity(intent);
        }
    });

第二项活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (GoogleServicesAvailable()) {
        Toast.makeText(menu_cari.this, "Terhubung...", Toast.LENGTH_LONG).show();
        setContentView(R.layout.activity_menu_cari);
        initmap();
    } else {
        //maps tidak ditampilkan
    }
    Bundle extras = getIntent().getExtras();
    lat_apotek=extras.getDouble(TAG1,0);
    lng_apotek=extras.getDouble(TAG2,0);
    goToLocation(lat_apotek,lng_apotek,20);
}
public void goToLocation(double lat, double lng, float zoom) {
    LatLng ll = new LatLng(lat, lng);
    CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom);
    mGoogleMap.moveCamera(update);
}

3 个答案:

答案 0 :(得分:0)

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_read_pdf);
        path = getIntent().getExtras().getString("pdfPath", "");
        init();
        if(!path.equals("")) {
            Constants.showLoadingDialog(this);
            Log.d("PDFLink", path);
            setPdfView();
        }else{
            Toast.makeText(this, "No PDF to display", Toast.LENGTH_SHORT).show();
        }
    }

    private void init(){
        webview = (WebView) findViewById(R.id.webView);
        backBtn = (ImageView) findViewById(R.id.backBtn);
        backBtn.setOnClickListener(this);
    }

    private void setPdfView() {
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + path);
        webview.setWebViewClient(new WebViewClient() {

            public void onPageFinished(WebView view, String url) {
                Constants.hideDialog();
            }
        });
    }

答案 1 :(得分:0)

你忘了把附加内容捆绑在一起:

  Bundle bundle = new Bundle();
Intent intent = new Intent(Menu1.this, menu_cari.class);
bundle.putDouble(menu_cari.TAG1,lat);
bundle.putDouble(menu_cari.TAG2, lng);
intent.putExtras(bundle);  //add this

此外,您应该在goToLocation(lat_apotek,lng_apotek,20);方法

中致电onMapReady

同时检查标签:

Bundle extras = getIntent().getExtras();
lat_apotek=extras.getDouble(TAG1,0);  //TAG1 should match `menu_cari.TAG1`

答案 2 :(得分:0)

FirstActivity: 


    apotek.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            double lat = -7.94203712;
    double lng = 112.60936975;
    Bundle bundle = new Bundle();
    Intent intent = new Intent(Menu1.this, menu_cari.class);
    bundle.putDouble(menu_cari.TAG1,lat);
    bundle.putDouble(menu_cari.TAG2, lng);

///////////////////////////////
    intent.putExtra("bundleKey",bundle);
/////////////////////

    startActivity(intent);
        }
    });

对于Bundle访问:

Bundle b = this.getIntent().getExtras();
double lng=b.getDouble(key);