예제 #1
0
 /// <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);
 }
예제 #2
0
    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);                        //获取本地天气
    }