/* INFINITY CODE 2013-2018 */ /* http://www.infinity-code.com */ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace InfinityCode.OnlineMapsDemos { [AddComponentMenu("Infinity Code/Online Maps/Demos/ExampleGUI")] public class ExampleGUI : MonoBehaviour { private OnlineMaps map; public GUIStyle newStyle; public string search = ""; public TMPro.TMP_InputField searchArea; public Dropdown drX; private void OnGUI() { /*if (rowStyle == null) { rowStyle = new GUIStyle(GUI.skin.button); RectOffset margin = rowStyle.margin; rowStyle.margin = new RectOffset(margin.left, margin.right, 1, 1); } GUILayout.BeginArea(new Rect(5, 40, 30, 255), GUI.skin.box); if (GUILayout.Button("-")) map.zoom--; for (int i = 3; i < 21; i++) if (GUILayout.Button("", newStyle, GUILayout.Height(10))) map.zoom = i; if (GUILayout.Button("+")) map.zoom++; GUILayout.EndArea();*/ //GUI.Box(new Rect(5, 5, Screen.width - 10, 30), ""); //GUI.Label(new Rect(10, 10, 100, 20), "Find place:"); //search = GUI.TextField(new Rect(80, 10, Screen.width - 200, 20), search); search = searchArea.text; if (Event.current.type == EventType.KeyUp && (Event.current.keyCode == KeyCode.KeypadEnter || Event.current.keyCode == KeyCode.Return)) SearchLocation(); //if (GUI.Button(new Rect(Screen.width - 110, 10, 100, 20), "Search")) FindLocation(); } public void DRselected() { int menuIndex = drX.GetComponent().value; List menuOptions = drX.GetComponent().options; string value = menuOptions[menuIndex].text; searchArea.text = value; drX.Hide(); StartCoroutine(SelectLocFromDropDown()); } public void FindLocation() { //drX.options.Clear(); //drX.Hide(); OnlineMapsGoogleGeocoding request = new OnlineMapsGoogleGeocoding(search, apiKey); request.OnComplete += delegate (string s) { request.Send(); }; } public void SearchLocation() { drX.options.Clear(); drX.Hide(); OnlineMapsGoogleGeocoding request = new OnlineMapsGoogleGeocoding(search, apiKey); request.OnComplete += delegate (string s) { OnlineMapsGooglePlacesAutocomplete.Find( search, apiKey ).OnComplete += OnComplete; }; // Makes a request to Google Places Autocomplete API. } public void Start() { map = OnlineMaps.instance; } public string apiKey; /// /// This method is called when a response is received. /// /// Response string IEnumerator ShowDropDown() { yield return new WaitForSeconds(0.2f); drX.Show(); } IEnumerator SelectLocFromDropDown() { yield return new WaitForSeconds(0.2f); FindLocation(); } private void OnComplete(string s) { // Trying to get an array of results. drX.GetComponent().options.Add(new Dropdown.OptionData() { text = "" }); drX.value = 0; OnlineMapsGooglePlacesAutocompleteResult[] results = OnlineMapsGooglePlacesAutocomplete.GetResults(s); // If there is no result if (results == null) { Debug.Log("Error"); Debug.Log(s); return; } // Log description of each result. foreach (OnlineMapsGooglePlacesAutocompleteResult result in results) { drX.options.Add(new Dropdown.OptionData (result.description) ); StartCoroutine(ShowDropDown()); } } } }