Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中获取双数据类型的lat-long_Android_Google Maps - Fatal编程技术网

在android中获取双数据类型的lat-long

在android中获取双数据类型的lat-long,android,google-maps,Android,Google Maps,我正在使用google map。它工作正常,我正在获取标记选项上的lat long。但我想在其他活动中传递该lat long。因此我需要将其更改为双数据类型。因为我必须提供特定位置的预测信息。请帮助我。这是我的代码 package com.example.gpstracking; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; impo

我正在使用google map。它工作正常,我正在获取标记选项上的lat long。但我想在其他活动中传递该lat long。因此我需要将其更改为双数据类型。因为我必须提供特定位置的预测信息。请帮助我。这是我的代码

  package com.example.gpstracking;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.GoogleMap.OnMapClickListener;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;

@SuppressLint("NewApi")
public class MapActivity1 extends Activity {
    private static final String TAG_LAT = "LAT";
    private static final String TAG_LONG = "LONGITUDE";

    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map_activity1);
        MapFragment fm = (MapFragment) getFragmentManager()
                .findFragmentById(R.id.fragment1);

        // Getting Map for the SupportMapFragment
        final GoogleMap map = fm.getMap();
        // Setting a click event handler for the map
        map.setOnMapClickListener(new OnMapClickListener() {

            @Override
            public void onMapClick(LatLng latLng) {

                // Creating a marker
                MarkerOptions markerOptions = new MarkerOptions();

                // Setting the position for the marker
                markerOptions.position(latLng);

                // Setting the title for the marker.
                // This will be displayed on taping the marker
                markerOptions.title(latLng.latitude + " : " + latLng.longitude);

                // Clears the previously touched position
                map.clear();

                // Animating to the touched position
                map.animateCamera(CameraUpdateFactory.newLatLng(latLng));

                // Placing a marker on the touched position
                map.addMarker(markerOptions);
                double lat=latLng.latitude;
                double longitude=latLng.longitude;
                String LAT=String.valueOf(lat);
                String LONGITUDE=String.valueOf(longitude);
                Intent in = new Intent(getApplicationContext(),
                        LocationActivity.class);
                // Sending lat/long to next activity
                in.putExtra(TAG_LAT, LAT);
                in.putExtra(TAG_LONG, LONGITUDE);
                startActivityForResult(in, 100);

            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.map_activity1, menu);
        return true;
    }

}
你试过下面的东西吗? 转换为字符串并传递到另一个活动

如果要将double传递给另一个活动,请将字符串转换为double

最后 如果要发送基本数据类型,请使用intent发送数据,否则请使用parcelable或serializableforjava对象传递数据

假设您正在发送基本数据:


然后检索newActivity.class中的数据

LocationListener LocationListener=new LocationListener{

                //private String stadion;

                @Override
                public void onLocationChanged(Location location) 
                {
                    float lat = (float)location.getLatitude();
                    float lon = (float)location.getLongitude();

                    map.addMarker(new MarkerOptions()
                    .title(stadion)
                    .position(new LatLng(lat,lon)));
                    map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat,lon), 10)); 

                    for(int i = 0; i < alleStadien.getLength(); i++){
                        Node stadion = alleStadien.item(i);

                        String name = stadion.getAttributes()
                                .getNamedItem(name)
                                .getNodeValue();
                        String verein = stadion.getAttributes()
                                .getNamedItem(verein)
                                .getNodeValue();
                        lat = (float)Float.valueOf(stadion.getAttributes()
                                .getNamedItem(lt)// Fehler
                                .getNodeValue());
                        lon = (float)Float.valueOf(stadion.getAttributes()
                                .getNamedItem(lg)// Fehler
                                .getNodeValue());
                        map.addMarker(new MarkerOptions()
                        .title(name)
                        .snippet(verein)
                        .position(new LatLng(lat,lon)));
                    }
                }

                public void onProviderEnabled(String provider) {}

                public void onProviderDisabled(String provider) {}

                public void onStatusChanged(String provider, int status,
                        Bundle extras) {}


            };
                geolocation.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 5, locationListener);
            }

            catch(ParserConfigurationException e){}
            catch(SAXException e){}
            catch(IOException e){}

}

是的,它正在工作..非常感谢..但是标记标题没有出现。它将重定向到下一个活动…您能告诉我为什么会发生这种情况吗?我已经编辑了我的代码。@bhagyasri patel…..当您点击标记时,标记标题会出现..如果您希望始终显示标题,请尝试使用markerOptions.showInfoWindow;…尝试t他的!@bhagyasri patel………如果你能解决这个问题……将答案标记为已接受,以便对寻找类似问题的人有所帮助!实际上我正在尝试..googleMap.addMarkernew MarkerOptions.positionlatLng.titleString title.showInfoWindow;…但它不起作用…它只是showing me marker..not lat long..Convert to string,然后将值传递给.titleyour值
double dataToSend=Double.valueof(LatLng.toString());
Intent int=new Intent(this,newActivity.class)
int.putExtra("key",dataToSend);
StartActivity(int);
                //private String stadion;

                @Override
                public void onLocationChanged(Location location) 
                {
                    float lat = (float)location.getLatitude();
                    float lon = (float)location.getLongitude();

                    map.addMarker(new MarkerOptions()
                    .title(stadion)
                    .position(new LatLng(lat,lon)));
                    map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat,lon), 10)); 

                    for(int i = 0; i < alleStadien.getLength(); i++){
                        Node stadion = alleStadien.item(i);

                        String name = stadion.getAttributes()
                                .getNamedItem(name)
                                .getNodeValue();
                        String verein = stadion.getAttributes()
                                .getNamedItem(verein)
                                .getNodeValue();
                        lat = (float)Float.valueOf(stadion.getAttributes()
                                .getNamedItem(lt)// Fehler
                                .getNodeValue());
                        lon = (float)Float.valueOf(stadion.getAttributes()
                                .getNamedItem(lg)// Fehler
                                .getNodeValue());
                        map.addMarker(new MarkerOptions()
                        .title(name)
                        .snippet(verein)
                        .position(new LatLng(lat,lon)));
                    }
                }

                public void onProviderEnabled(String provider) {}

                public void onProviderDisabled(String provider) {}

                public void onStatusChanged(String provider, int status,
                        Bundle extras) {}


            };
                geolocation.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 5, locationListener);
            }

            catch(ParserConfigurationException e){}
            catch(SAXException e){}
            catch(IOException e){}

}