Как добавить вместо Google maps API 2gis?

Если вы хотите добавить в свой проект вместо Google Maps API 2GIS, вам понадобятся следующие действия:

Шаг 1: Регистрация в 2GIS API

Перед тем как начать использовать 2GIS API, вам необходимо зарегистрироваться на сайте разработчиков 2GIS (https://help.2gis.ru/developers/new/) и получить доступный вам ключ API.

Шаг 2: Добавление зависимостей

Добавьте зависимости 2GIS API в свой проект. Для этого вам понадобится включить следующие строки в файле "build.gradle" вашего проекта:

dependencies {
    implementation 'ru.dgis.sdk:sdk-core:2.3.0'
    implementation 'ru.dgis.sdk:sdk-map:2.3.0'
}

Если вы используете Maven, добавьте следующие строки в файл "pom.xml":

<dependencies>
    <dependency>
        <groupId>ru.dgis.sdk</groupId>
        <artifactId>sdk-core</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>ru.dgis.sdk</groupId>
        <artifactId>sdk-map</artifactId>
        <version>2.3.0</version>
    </dependency>
</dependencies>

Шаг 3: Инициализация карты

Вам нужно инициализировать карту 2GIS. Например, если вы используете JavaFX, вы можете добавить следующий код в вашу инициализацию приложения:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import ru.dgis.sdk.coordinates.GeoPoint;
import ru.dgis.sdk.coordinates.GeoPointBounds;
import ru.dgis.sdk.map.MapView;
import ru.dgis.sdk.map.MapOptions;
import ru.dgis.sdk.map.MapOptions.GeoCenterMode;
import ru.dgis.sdk.map.MapOptions.MapRotationMode;
import ru.dgis.sdk.map.MapOptions.GeoPointBoundsMode;

public class MainApp extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        MapOptions mapOptions = new MapOptions(
                new GeoPoint(55.751244, 37.618423),
                GeoCenterMode.CENTER,
                15,
                GeoPointBoundsMode.LIMIT,
                MapRotationMode.NO_ROTATE
        );
        MapView mapView = new MapView(mapOptions);

        BorderPane root = new BorderPane();
        root.setCenter(mapView);

        Scene scene = new Scene(root, 800, 600);

        primaryStage.setTitle("2GIS Map");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Этот код создаст и отобразит карту 2GIS внутри JavaFX-приложения, инициализируя ее с центром в Москве (координаты 55.751244, 37.618423), масштаб 15 и без возможности вращения карты.

Шаг 4: Добавление маркеров и объектов на карту

Чтобы добавить маркеры и объекты на карту 2GIS, вам понадобится работать с комикс. Вот пример кода, показывающий, как добавить маркер на карту:

import ru.dgis.sdk.geometry.GeoPoint;
import ru.dgis.sdk.map.MapMarker;
import ru.dgis.sdk.map.MapObjectHolder;
import ru.dgis.sdk.map.MapView;

MapView mapView = ... // получаем MapView из своего приложения
MapObjectHolder mapObjectHolder = mapView.getMap().getMapObjectHolder();
GeoPoint markerLocation = new GeoPoint(latitude, longitude);
MapMarker marker = new MapMarker(markerLocation);
mapObjectHolder.add(marker);

Вместо latitude и longitude вы должны указать координаты вашего маркера.

Шаг 5: Дополнительная функциональность

2GIS API предлагает множество других возможностей, таких как отображение путевых точек, определение маршрутов, работа с геокодированием и т. д. Вы можете ознакомиться с официальной документацией 2GIS API (https://help.dgis.ru/api/) для получения полного списка функций и примеров использования.

Оживлять карту 2GIS вместо Google Maps API несложно, но требует некоторых дополнительных действий. Надеюсь, эта информация будет полезной для вас при добавлении 2GIS API в ваш проект на Java.