метод на языке java в Android Studio, который открывает Яндекс карту при помощи Yandex mapkit в новом окне
dependencies {
implementation 'com.yandex.android:mapkit:3.10.0'
implementation 'com.yandex.android:mapkit-jni:3.10.0'
}
2. Создать карту в activity
В activity, где вы хотите открыть карту, следует добавить объект `MapView` и настроить его:
public class MapActivity extends AppCompatActivity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
// Находим MapView по его id
mapView = findViewById(R.id.mapview);
// Указываем API-ключ для Yandex mapkit
MapKitFactory.setApiKey("ваш-ключ-от-Yandex-mapkit");
// Создаем объект карты и добавляем ее в MapView
Map map = mapView.getMap();
}
}
3. Передать координаты для показа на карте
Чтобы открыть карту с нужным местоположением, нужно передать ее координаты. Возьмем для примера Москву:
CameraPosition cameraPosition = new CameraPosition(
new Point(55.753216, 37.622514), // Координаты Москвы
14.0f, // Уровень масштабирования карты
0.0f, // Наклон карты
0.0f // Ориентация карты
);
4. Открыть карту в новом окне
Для открытия карты в новом окне следует создать новую activity и передать в нее координаты. Например:
public class MapActivity extends AppCompatActivity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
// Находим MapView по его id
mapView = findViewById(R.id.mapview);
// Указываем API-ключ для Yandex mapkit
MapKitFactory.setApiKey("ваш-ключ-от-Yandex-mapkit");
// Создаем объект карты и добавляем ее в MapView
Map map = mapView.getMap();
// Устанавливаем позицию камеры
CameraPosition cameraPosition = new CameraPosition(
new Point(55.753216, 37.622514), // Координаты Москвы
14.0f, // Уровень масштабирования карты
0.0f, // Наклон карты
0.0f // Ориентация карты
);
// Открываем новую activity и передаем в нее координаты
Intent intent = new Intent(this, NewMapActivity.class);
intent.putExtra("cameraPosition", cameraPosition);
startActivity(intent);
}
}
5. Показать карту в новой activity
В новой activity мы получаем переданные данные и открываем карту:
public class NewMapActivity extends AppCompatActivity {
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_map);
// Находим MapView по его id
mapView = findViewById(R.id.mapview);
// Указываем API-ключ для Yandex mapkit
MapKitFactory.setApiKey("ваш-ключ-от-Yandex-mapkit");
// Получаем переданные данные
CameraPosition cameraPosition = getIntent().getParcelableExtra("cameraPosition");
// Создаем объект карты и добавляем ее в MapView
Map map = mapView.getMap();
map.move(new CameraPosition(
new Point(cameraPosition.getTarget().getLatitude(), cameraPosition.getTarget().getLongitude()),
cameraPosition.getZoom(),
cameraPosition.getAzimuth(),
cameraPosition.getTilt()
));
}
}
Теперь, вызвав activity, где мы создали карту, она откроется в новом окне с указанными нами координатами.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет