Ich versuche, Geocoder mit meiner Google Map zu verwenden. Ich kann den Breiten- und Längengrad vom Standortnamen erhalten. Mein Problem ist, dass ich den Breiten- und Längengrad nicht verwenden kann, um einen Marker hinzuzufügen oder die Kamera an diese Position zu bewegen. Jedes Mal, wenn eine Nullzeiger-Ausnahme angezeigt wird. Aber ich bekomme den Breiten- und Längengrad als Textansicht. Ich habe alle die Erlaubnis verwendet, tatsächlich funktioniert Geocoder gut, aber nicht mit der Google-Karte. Funktioniert Geocoder nicht, um einen Marker hinzuzufügen oder zu diesem Ort auf Google Map zu bewegen?Funktioniert Geocoder tatsächlich mit google map api v2?
Ich verwende Fragment-Klasse wegen der Navigationsschublade, hat es irgendetwas, um dieses Problem zu schaffen?
Wenn ein Körper eine Antwort hat, wäre das hilfreich. Ich kann meine Arbeit veröffentlichen, wenn jemand fragt. Danke
dies mein Fragment Klasse ist
public class GMapFragment extends Fragment implements OnMapReadyCallback{
private GoogleMap googleMap;
MapFragment fragment;
EditText location_tf;
Button button;
List<Address> addressList;
Geocoder geocoder;
double lat;
double lng;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_gmap, container, false);
location_tf = (EditText)rootView.findViewById (R.id.TFaddress);
button = (Button)rootView.findViewById(R.id.Bsearch);
button.setOnClickListener(buttonOnClickListener);
initilizeMap();
return rootView;}
OnClickListener buttonOnClickListener =
new OnClickListener(){
public void onClick(View v)
{
String location = location_tf.getText().toString();
Geocoder geocoder = new Geocoder(getActivity(),Locale.ENGLISH);
List<Address> addressList = null;
try {
addressList = geocoder.getFromLocationName(location, 1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Address address = addressList.get(0);
String locality= address.getLocality();
Toast.makeText(getActivity(), locality, Toast.LENGTH_SHORT).show();
lat = address.getLatitude();
lng = address.getLongitude();
LatLng ll = new LatLng(lat, lng);
googleMap.addMarker(new MarkerOptions() //line 89
.position((ll)));
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
(ll), 15));
}
}
;
private void initilizeMap()
{
MapFragment fragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
if (fragment != null){
fragment.getMapAsync(this);
}
}
@Override
public void onMapReady(final GoogleMap googleMap) {
googleMap.setMyLocationEnabled(true);
googleMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
}
@Override
public void onPause() {
final FragmentManager fragManager = this.getFragmentManager();
final Fragment fragment = fragManager.findFragmentById(R.id.map);
if(fragment!=null){
fragManager.beginTransaction().remove(fragment).commit();
super.onPause();
}
}
@Override
public void onDestroy() {
super.onDestroy();
final FragmentManager fragManager = this.getFragmentManager();
final Fragment fragment = fragManager.findFragmentById(R.id.map);
if(fragment!=null){
fragManager.beginTransaction().remove(fragment).commit();
}
}
}
dies mein LogCat ist
05-23 20:05:36.133: E/AndroidRuntime(10092): FATAL EXCEPTION: main
05-23 20:05:36.133: E/AndroidRuntime(10092): Process: com.cubecode.mapdhaka, PID: 10092
05-23 20:05:36.133: E/AndroidRuntime(10092): java.lang.NullPointerException
05-23 20:05:36.133: E/AndroidRuntime(10092): at com.cubecode.mapdhaka.GMapFragment$1.onClick(GMapFragment.java:89)
05-23 20:05:36.133: E/AndroidRuntime(10092): at android.view.View.performClick(View.java:4472)
05-23 20:05:36.133: E/AndroidRuntime(10092): at android.view.View$PerformClick.run(View.java:18779)
05-23 20:05:36.133: E/AndroidRuntime(10092): at android.os.Handler.handleCallback(Handler.java:808)
05-23 20:05:36.133: E/AndroidRuntime(10092): at android.os.Handler.dispatchMessage(Handler.java:103)
05-23 20:05:36.133: E/AndroidRuntime(10092): at android.os.Looper.loop(Looper.java:193)
05-23 20:05:36.133: E/AndroidRuntime(10092): at android.app.ActivityThread.main(ActivityThread.java:5292)
05-23 20:05:36.133: E/AndroidRuntime(10092): at java.lang.reflect.Method.invokeNative(Native Method)
05-23 20:05:36.133: E/AndroidRuntime(10092): at java.lang.reflect.Method.invoke(Method.java:515)
05-23 20:05:36.133: E/AndroidRuntime(10092): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
05-23 20:05:36.133: E/AndroidRuntime(10092): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
05-23 20:05:36.133: E/AndroidRuntime(10092): at dalvik.system.NativeStart.main(Native Method)
bitte den zugehörigen Code schreiben – pablobu
ich das Fragment Klasse und logcat gebucht haben. nur Problem, das von der Markierung kommt und Kamera bewegt. Wenn ich sie nicht benutze und die Textansicht verwende, kann ich die Breite und Länge erhalten. Aber ich möchte einen Marker zum gesuchten Ort hinzufügen und die Kamera dorthin bewegen. Ist es nicht möglich, @pablobu – Rakib07003