/// <summary> /// 根据街道地址获取百度地图实际的地址实体信息 /// </summary> /// <param name="address">街道地址(可以不详细)</param> /// <returns></returns> public static BaiduAddressEntity GetProvCityDistFromBaiduMap(string address) { try { WebClient webClient = new WebClient(); NameValueCollection postValues = new NameValueCollection { { "ak", ApiKey }, { "output", "json" }, { "address", address } }; // 向服务器发送POST数据 byte[] responseArray = webClient.UploadValues(Url, postValues); string response = Encoding.UTF8.GetString(responseArray); if (!string.IsNullOrEmpty(response)) { BaiduBackEntity backEntity = JsonConvert.DeserializeObject <BaiduBackEntity>(response); if (backEntity != null && backEntity.Status == 1) { return(null); } BaiduLocation location = JsonConvert.DeserializeObject <BaiduLocation>(response); if (location != null) { return(GetAddressFromBaidu(location.Result.Location.Lat.ToString(CultureInfo.InvariantCulture), location.Result.Location.Lng.ToString(CultureInfo.InvariantCulture))); } } } catch (Exception) { return(null); } return(null); }
IEnumerator GetLocationGPS() { Input.location.Start(); //打开GPS float time = 0; //检测时间 while (Input.location.status == LocationServiceStatus.Initializing && _timeout > time) //循环检测打开GPS是否超时 { yield return(new WaitForSeconds(1f)); time++; } if ((Input.location.status == LocationServiceStatus.Failed) || (time >= _timeout) || (Input.location.status != LocationServiceStatus.Running)) { text.text += "GPS服务启动失败\n"; //print("GPS服务启动失败"); yield break; } else //获取经纬度信息 { Longitude.text = Input.location.lastData.longitude.ToString(); Latitude.text = Input.location.lastData.latitude.ToString(); Altitude.text = Input.location.lastData.altitude.ToString(); } string url = "http://api.map.baidu.com/geocoder/v2/?location=" + Input.location.lastData.latitude + ", " + Input.location.lastData.longitude + "&output=json&pois=1&ak=E15fQ4IuLwFfkjaGdgp2bTiSHOTiykDV"; WWW www = new WWW(url); yield return(www); BaiduLocation locationData = JsonUtility.FromJson <BaiduLocation>(www.text); CurrCity.text = locationData.result.addressComponent.city; WeatherQuerier localWeather = new WeatherQuerier(); localWeather.GetLocalWeather(CurrCity.text); //获取本地天气 }