谷歌地图返回错误的位置由地理编码器在安卓



我正在使用谷歌地图,我想在其中搜索位置,但它返回我错误的位置。我找不到问题在哪里,我需要一些建议。有人告诉我该怎么做吗?

EditText sLocation = (EditText)getActivity().findViewById(R.id.editText1);
                location = sLocation.getText().toString();
                List<android.location.Address> addressList= null;
                if (location != null || location.length()>0) {
                    Geocoder geocoder = new Geocoder(getActivity().getApplicationContext());
                    try {
                        addressList = geocoder.getFromLocationName(location, 1);
                    } catch (IOException e) {
                            e.printStackTrace();
                    }
                    android.location.Address address = addressList.get(0);
                    String locality = address.getLocality();
                    Toast.makeText(getActivity(), locality, Toast.LENGTH_LONG).show();
                    LatLng latlng = new LatLng(address.getLatitude(), address.getLatitude());
                    gMap.addMarker(new MarkerOptions().position(latlng).title("Marker"));
                    gMap.animateCamera(CameraUpdateFactory.newLatLng(latlng));
                }

我在谷歌地图上得到错误的位置,因为我没有得到正确的纬度和经度。现在我通过下面的代码通过geocoder获得正确的位置。

sButton =(Button) v.findViewById(R.id.generalId);
sButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            hideSoftKeyboard(v);
            EditText sLocation = (EditText)getActivity().findViewById(R.id.editText1);
            location = sLocation.getText().toString();
            List<android.location.Address> addressList= null;
            if (location != null || location.length()>0) {
                Geocoder geocoder = new Geocoder(getActivity().getApplicationContext());
                try {
                    addressList = geocoder.getFromLocationName(location, 1);
                } catch (IOException e) {
                        e.printStackTrace();
                }
                android.location.Address address = addressList.get(0);
                String locality = address.getLocality();
                Toast.makeText(getActivity(), locality, Toast.LENGTH_LONG).show();
                double latitude = address.getLatitude();
                double longitude = address.getLongitude();
                LatLng latLng = new LatLng(latitude, longitude);
                gMap.addMarker(new MarkerOptions().position(latLng).title("Marker"));
                gMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
            }
        }
    });
不是

EditText sLocation = (EditText)getActivity().findViewById(R.id.editText1);
location = sLocation.getText().toString();
                List<android.location.Address> addressList= null;
                if (location != null || location.length()>0) {
                    Geocoder geocoder = new Geocoder(getActivity().getApplicationContext());
                    try {
                        addressList = geocoder.getFromLocationName(location, 1);
                    } catch (IOException e) {
                            e.printStackTrace();
                    }
                    android.location.Address address = addressList.get(0);
                    String locality = address.getLocality();
                    Toast.makeText(getActivity(), locality, Toast.LENGTH_LONG).show();
                    LatLng latlng = new LatLng(address.getLatitude(), address.getLatitude());
                    gMap.addMarker(new MarkerOptions().position(latlng).title("Marker"));
                    gMap.animateCamera(CameraUpdateFactory.newLatLng(latlng));
                }

最新更新