我正在使用谷歌地图,我想在其中搜索位置,但它返回错误的位置。我找不到它的问题,我需要建议。请有人告诉我该怎么办?
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));
}
答案 0 :(得分:0)
我在谷歌地图上的位置错误,因为我没有得到正确的纬度和经度。现在我通过以下代码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));
}