私はアンドロイドが初めてで、LocationListener と Google マップ API v2 に関連付けられたロケーション マネージャーを使用しています。ユーザーの現在のロケーションと別のロケーションの間の距離を取得しようとしていますが、常に map.getMyLocation() で null ポインターを取得します。 .
ここに私のコードがあります:
LocationManager locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
MyLocationListener locListener = new MyLocationListener(this);
jager =(Button)findViewById(R.id.button1);
rotebuhlplatz =(Button)findViewById(R.id.button2);
rotebuhlst =(Button)findViewById(R.id.button3);
if(locListener.canGetLocation ){
double mLat=locListener.getLatitude();
double mLong=locListener.getLongitude();
}else{
// can't get the location
}
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,locListener);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
Marker jager = map.addMarker(new MarkerOptions().position(DHBWJager56)
.title("DHBW Jägerstraße 56")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
allMarkersMap.put(jager, Jager56.class);
map.setOnInfoWindowClickListener(this);
Marker jager2 = map.addMarker(new MarkerOptions().position(DHBWJager58)
.title("DHBW Jägerstraße 58")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
allMarkersMap.put(jager, Jager58.class);
map.setOnInfoWindowClickListener(this);
Marker rotebuhl = map.addMarker(new MarkerOptions()
.position(DHBWRotebuhl)
.title("DHBW Rotebühlplatz 41/1").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
allMarkersMap.put(rotebuhl, Rotebuhl.class);
map.setOnInfoWindowClickListener(this);
// .icon(BitmapDescriptorFactory
// .fromResource(R.drawable.ic_launcher)));
Marker rts = map.addMarker(new MarkerOptions().position(DHBWRotebuhlstrasse)
.title("DHBW Rotebühlstraße 131"));
allMarkersMap.put(rts, SocialWork.class);
map.setOnInfoWindowClickListener(this);
// Move the camera instantly to Jagerstrasse with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(DHBWRotebuhl, 17.0f));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(14), 2000, null);
map.setMyLocationEnabled(true);
Location l1=new Location("source");
l1.setLatitude(DHBWJager56.latitude);
l1.setLongitude(DHBWJager56.longitude);
float f=l1.distanceTo(map.getMyLocation());