https://vk.com/ymapsapi - группа ВКонтакте https://yandex.ru/blog/mapsapi - клуб https://github.com/yandexmobile/yandexmapkit-android - Яндекс MapKit для андроида – там-же и для IoS и W8. https://tech.yandex.ru/maps/doc/jsapi/2.1/dg/concepts/controls-docpage/ - работа с элементами управления карт – документация https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/concepts/About-docpage/ - документация API http://www.cyberforum.ru/android-dev/thread1704479.html - тема киберфорума с полезной информацией по программированию. https://github.com/yandexmobile/yandexmapkit-android/tree/maven/ru/yandex/yandexmapkit/2.5.4 - библиотека mapkit и документация в jar Очень похоже, что гораздо удобнее реализовывать схему использования Yandex Maps на мобильных приложениях через WebView – особенно, если вы реализуете универсальное решение, когда доступ к данным надо получать не только через мобильное приложение, но и с других устройств через браузер. Для этого (Android studio) в директории assets ( на одном уровне с res) создается файл html, который подгружается в WebView. Пример файл index. html
<!doctype html> <html> <head> <title>Example</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script> <meta name="viewport" content="width=device-width,height=device-height, user-scalable=no" /> <script type="text/javascript"> var myMap; ymaps.ready(function () { myMap = new ymaps.Map('map', { center: [55.755381, 37.619044], zoom: 14, type: 'yandex#satellite' }); }); </script> <style> html, body, #map { width: 100%; height: 100%; margin: 0; padding: 0; } #map { background-color: black; } </style> </head> <body> <div id="map"></div> </body> </html>
и mainActivity
package ru.toborobot.yandexmapwebview; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.Menu; import android.view.MenuItem; import android.webkit.WebSettings; import android.webkit.WebView; import java.io.IOException; import java.io.InputStream; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); WebView myWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); try { InputStream is = getAssets().open("index.html"); byte[] buffer = new byte[is.available()]; is.read(buffer); is.close(); String htmlText = new String(buffer); myWebView.loadDataWithBaseURL( "http://ru.yandex.api.yandexmapswebviewexample.ymapapp", htmlText, "text/html", "UTF-8", null ); } catch (IOException e) { e.printStackTrace(); } // webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
файл content_main.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="ru.toborobot.yandexmapwebview.MainActivity" tools:showIn="@layout/activity_main"> <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent"></WebView> </android.support.constraint.ConstraintLayout>