Страница 1 из 1
SherlockFragment и Location
Добавлено: 12 окт 2013, 17:16
MAGISTR-Shuba
Всем привет =)
Ситуация такая - скачал SherlockBar, и теперь пытаюсь во фрагмент засунуть карту, отображающую местоположение пользователя.
Проблема - есть ли способ сделать это для версии андроида 2.3? Нужно ли использовать какие-то сторонние классы? Можно ли как-то "запихнуть" во View (которое я передаю шерлоку для отображения фрагмента) эту карту?
Re: SherlockFragment и Location
Добавлено: 12 окт 2013, 21:59
rezak90
не вижу проблем, MapView можно запихнуть куда угодно
Re: SherlockFragment и Location
Добавлено: 13 окт 2013, 02:01
MAGISTR-Shuba
rezak90 писал(а):не вижу проблем, MapView можно запихнуть куда угодно
Не могли бы Вы привести пример? Сколько примеров не перепробовал (и стакОверФлоу, и сторонние статьи) - так и не получается даже карту отобразить (пермишины ставил, API-ключ указывал, в гугле карты включал, библиотеку гугл-сервиса подгружал)
Re: SherlockFragment и Location
Добавлено: 13 окт 2013, 09:57
rezak90
лучше покажи код как ты это всё дело подключаешь
Re: SherlockFragment и Location
Добавлено: 13 окт 2013, 10:40
MAGISTR-Shuba
rezak90 писал(а):лучше покажи код как ты это всё дело подключаешь
Пока просто чтобы отобразить текущие координаты сделал так:
Код: Выделить всё
public class PartOfMap extends SherlockFragment implements LocationListener{
private View view=null;
GoogleMap googleMap;
private MapView mapView;
private static double lat=0.0 ,lon=0.0 ,alt=0.0 ,speed=0.0;
private boolean isGPSEnabled = false, isNetworkEnabled=false;
private Location location;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_map, container, false);
LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
Toast.makeText(getActivity(), "isGPSEnabled =" + isGPSEnabled, 100).show();
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
Toast.makeText(getActivity(), "isNetworkEnabled =" + isNetworkEnabled, 100).show();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000,
1000, this);
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
lat = location.getLatitude();
lon = location.getLongitude();
Toast.makeText(getActivity(), "Coordinates"+ lat +""+ lon+"" + alt+"" + speed+"", 100).show();
}
SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapview);
googleMap = fm.getMap();
googleMap.setMyLocationEnabled(true);
Marker marker = googleMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lon))
.title("San Francisco")
view=getActivity().findViewById(R.id.mapview);
return view;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
setUserVisibleHint(true);
}
@Override
public void onLocationChanged(Location location) {}
XML:
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.gms.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
Манифест:
Код: Выделить всё
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-library android:name="com.google.android.maps" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="ключ" />
Далее пустые методы-вставки. На данном этапе пишет что проблема в xml и он не может заинфлэтить мапу