Как геокодировать пункт назначения? - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь перейти на приложение Mapbox с Unity.Я могу определить местоположение пользователя, но не смог получить пункт назначения от пользователя.Я хочу взять в качестве текста.Если я могу взять пункт назначения, я могу легко наметить маршрут.

Я попытался перезагрузить карту, но это бесполезно.Кроме того, я попробовал ввести пользовательский входной файл геокодирования, но не смог его сделать.

    namespace Mapbox.Examples
    {
        using Mapbox.Unity;
        using UnityEngine;
        using UnityEngine.UI;
        using System;
        using Mapbox.Geocoding;
        using Mapbox.Utils;

        [RequireComponent(typeof(InputField))]
        public class ForwardGeocodeUserInput : MonoBehaviour
        {
            InputField _inputField;

            ForwardGeocodeResource _resource;

            Vector2d _coordinate;
            public Vector2d Coordinate
            {
                get
                {
                    return _coordinate;
                }
            }

            bool _hasResponse;
            public bool HasResponse
            {
                get
                {
                    return _hasResponse;
                }
            }

            public ForwardGeocodeResponse Response { get; private set; }

            //public event Action<> OnGeocoderResponse = delegate { };
            public event Action<ForwardGeocodeResponse> OnGeocoderResponse = delegate { };

            void Awake()
            {
                _inputField = GetComponent<InputField>();
                _inputField.onEndEdit.AddListener(HandleUserInput);
                _resource = new ForwardGeocodeResource("");
            }

            void HandleUserInput(string searchString)
            {
                _hasResponse = false;
                if (!string.IsNullOrEmpty(searchString))
                {
                    _resource.Query = searchString;
                    MapboxAccess.Instance.Geocoder.Geocode(_resource, HandleGeocoderResponse);
                }
            }

            void HandleGeocoderResponse(ForwardGeocodeResponse res)
            {
                _hasResponse = true;
                if (null == res)
                {
                    _inputField.text = "no geocode response";
                }
                else if (null != res.Features && res.Features.Count > 0)
                {
                    var center = res.Features[0].Center;
                    //_inputField.text = string.Format("{0},{1}", center.x, center.y);
                    _coordinate = res.Features[0].Center;
                }
                Response = res;
                OnGeocoderResponse(res);
            }
        }
}

Не могли бы вы мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...