Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
Лабораторна робота №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.