ArtfulBits inc. aiMinesweeper. Первая в Украине игра для Android. Android custom components Anti-piracy движение Готовые решения для Android-разработчиков
Почему Android? Открытый исходный код Поддержка со стороны Android community новых пользователей в день Managed (Java) & Native (JNI, C++) APIs «3dr party» прошивки Обильная документация Множество примеров
Google maps Google сервер XML – APIs Открытый доступ к картам и навигации Частые обновления со спутника
Архитектура Android UI
Maps for Android
Google maps integration Получение API key от Google Google map APIs должы поддерживаться телефоном Добавление прав доступа (permissions) в AndroidManifest.xml Добавление MapView в визуальное дерево Унаследование функционала MapActivity
Библиотека Google Maps Перевод гео-координат в координаты экрана посредством интерфейса Projection, доступного через MapView.getProjection() Доступно 2 реализации абстрактного класса Overlay: MyLocationOverlay и ItemizedOverlay Рекурсивный вызов Overlay.draw() получает экземпляр MapView для определение координат отрисовки
Отрисовка поверх карты Объявление своего слоя: public class CustomOverlay extends Overlay {... public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); mapView.getProjection().toPixels(m_geoPoint, m_screenPoint); canvas.drawCircle(m_screenPoint.x, m_screenPoint.y, 10, m_paint); }
Жизненный цикл Activity public class AppActivity extends MapActivity { private MyLocationOverlay protected void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); MapView map = (MapView)findViewById(R.id.mapView); m_overlay = new MyLocationOverlay(this, map); map.getOverlays().add(m_overlay); protected void onResume() { super.onResume(); m_overlay.enableMyLocation(); protected void onPause() { super.onPause(); m_overlay.disableMyLocation(); protected boolean isRouteDisplayed() { return false; }
Links Artfulbits products: SDK & Samples: Android source: