(Карты) Избегайте возврата камеры на предыдущую позицию при добавлении нового PIN-кода. - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть приложение, которое показывает Карту и Пин-код в центре (точно так же, как Uber и PedidosYa), у меня есть кнопка, которая, когда я нажимаю, отправляет место, где находится пин-код.И это приводит к появлению ближайших магазинов вокруг этого штифта.

Моя проблема в том, что когда карта в первый раз появляется в центре моего местоположения, я перемещаю карту, чтобы найти штифт, и когда я нажимаю на кнопкуКнопка Я хочу, чтобы карта оставалась там, но она вернулась на прежнее место, и ТО переместила камеру в то место, где я уронил булавку.Я хочу избежать этого перемещения.

Функция, которую я использую, когда я нажимаю кнопку, чтобы уронить булавку, выглядит примерно так:

var CenterPos = customMap.GetMapCenterLocation();

            var pinPersonal = new CustomPin()
            {
                Id = "000",
                Position = new Position(CenterPos.Latitude, CenterPos.Longitude),
                Label = "Mio",
                Url = "Mío"
            };

            customMap.Pins.Add(pinPersonal);

Это рисует булавку, где я нажимаю кнопку.Если я продолжу в том же духе, то начертит булавку, и камера вернется в прежнее положение.

После того, как я использую что-то вроде этого:

customMap.MoveToRegion(MapSpan.FromCenterAndRadius(
                                    new Position(latitud, longitud), Distance.FromMiles(0.2)));

, что заставляет камеру перемещаться вместо, которое я выбираю.Но он всегда возвращается к предыдущему месту и переходит к новому.

Есть идеи?Я не уверен, откуда такое поведение.

1 Ответ

0 голосов
/ 13 апреля 2019

Реализовали ли вы CustomMap в соответствии с Настройка PIN-кода карты - Xamarin ?

Возможно, вам следует переопределить OnMarkerClickListener.OnMarkerClick и вернуть true в свой пользовательский рендерер.Это означает отключение поведения по умолчанию (центрирование карты, открытое информационное окно), и вы можете реализовать свое собственное поведение при щелчке по пин.

См. Эту ссылку.

    /** Called when the user clicks a marker. */
    @Override
    public boolean onMarkerClick(final Marker marker) {

        // Retrieve the data from the marker.
        Integer clickCount = (Integer) marker.getTag();

        // Check if a click count was set, then display the click count.
        if (clickCount != null) {
            clickCount = clickCount + 1;
            marker.setTag(clickCount);
            Toast.makeText(this,
                           marker.getTitle() +
                           " has been clicked " + clickCount + " times.",
                           Toast.LENGTH_SHORT).show();
        }

        // Return false to indicate that we have not consumed the event and that we wish
        // for the default behavior to occur (which is for the camera to move such that the
        // marker is centered and for the marker's info window to open, if it has one).
        return false;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...