Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
Лабораторна робота №6
з предмету:
«Мережні операційні системи»
на тему:
«Управління геоконтекстними сервісами в ОС Android»
Мета роботи: Оволодіти навичками роботи з програмним інтерфейсом геоконтекстних сервісів в ОС Android.
Послідовність виконання роботи:
1. Ознайомитись з загальними відомостями про роботу з засобами позиціонування та сервісом Google Maps в ОС Android.
2. Створити тестову програму на основі прикладів тестових програм (див.1.5) згідно заданого варіанту.
3. Відлагодити та дослідити роботу тестової програми на емуляторі.
4. Знайти відповіді на контрольні запитання.
5. Скласти та захистити звіт з лабораторної роботи.
Варіанти завдань:
Тестова програма, яка визначає біжучу відстань між користувачем та заданим корпусом Львівської політехніки (номер корпусу користувач вибирає зі списку) та відображає її у вигляді відрізку прямої лінії на карті.
Лістинг тестової програми:
MapsActivity.java
public class MapsActivity extends AppCompatActivity {
GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
mapuss();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void mapuss()
{
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
mMap.setMyLocationEnabled(true);
}
public class Univer
{
String name;
double coord_X, coord_Y;
};
boolean isMarkerPlaced=false;
Univer Koord=new Univer();
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.action_k0:
Koord.coord_X = 49.83511;
Koord.coord_Y = 24.01446;
Koord.name = "Головний корпус";
mMap.clear();
mMap.addMarker(new MarkerOptions().position(new LatLng(Koord.coord_X,Koord.coord_Y)).title(Koord.name) );
isMarkerPlaced=true;
return true;
case R.id.action_k1:
Koord.coord_X = 49.83533;
Koord.coord_Y = 24.01004;
Koord.name = "Корпус №1";
mMap.clear();
mMap.addMarker(new MarkerOptions().position(new LatLng(Koord.coord_X,Koord.coord_Y)).title(Koord.name) );
isMarkerPlaced=true;
return true;
case R.id.action_k5:
Koord.coord_X = 49.835;
Koord.coord_Y = 24.00824;
Koord.name = "Корпус №5";
mMap.clear();
mMap.addMarker(new MarkerOptions().position(new LatLng(Koord.coord_X,Koord.coord_Y)).title(Koord.name) );
isMarkerPlaced=true;
return true;
case R.id.action_way:
if(isMarkerPlaced == true)
{
Location my = mMap.getMyLocation();
mMap.addPolyline(new PolylineOptions().geodesic(true)
.add(new LatLng(my.getLatitude(),my.getLongitude())) // Fiji
.add(new LatLng(Koord.coord_X, Koord.coord_Y)));
}
else
{
AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Warning");
alertDialog.setMessage("Виберіть спочатку навчальний корпус");
alertDialog.show();
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.home.kubic.moslab6" >
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
avtivity_maps.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:fitsSystemWindows="true"
android:orientation="horizontal"
tools:context=".MainActivity">
<fragment
android:name="com.google.android.gms.maps.SupportMapFragment"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Рис. 1. Google Map API Key
Результати виконання програми:
/
Рис. 2. Результат виконання програми
Висновок: На цій лабораторні роботі я оволодів навичками роботи з програмним інтерфейсом геоконтекстних сервісів в ОС Android.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!