/// <summary> /// 返回地址结构 /// </summary> /// <returns></returns> public AMapLocationInfo GetAmapLocationInfo() { _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); _jo = _jc.GetStatic <AndroidJavaObject>("currentActivity"); AMapLocationInfo amap = new AMapLocationInfo(); try { amap.NErrorCode = GetErrorCode(); amap.SErrorCode = ((ErrorMessage)amap.NErrorCode).ToString(); amap.SIdAddr = GetLocationInfo(); amap.SCountry = GetCountry(); amap.SProvince = GetProvince(); amap.SCity = GetCity(); amap.SDistrict = GetDistrict(); amap.SStreet = GetStreet(); amap.SStreetNum = GetStreetNum(); amap.SCityCode = GetCityCode(); amap.SAdCode = GetAdCode(); amap.SAoiInfo = GetAoiInfo(); amap.Longitude = GetLongitude(); amap.Latitude = GetLatitude(); return(amap); } catch (Exception e) { Debug.Log(e.Message); amap.NErrorCode = (int)ErrorCode.Error1_; amap.SErrorCode = ((ErrorMessage)(int)ErrorCode.Error1_).ToString(); return(amap); } }
private void GetLocationInfo() { _nReqAmapLocationCount++; string sError = "第" + _nReqAmapLocationCount + "次定位!"; Debug.Log(sError); #if UNITY_ANDROID AMapLocationInfo amap = AMapLocation.Instance.GetAmapLocationInfo(); if (amap.NErrorCode == 0) { StringBuilder sb = new StringBuilder(); string sErrorCode = "错误码为:" + amap.NErrorCode + "\n"; Debug.Log("错误码为:" + sErrorCode); string sIdAddr = "地址为:" + amap.SIdAddr + "\n"; Debug.Log("地址为:" + sIdAddr); string sCountry = "国家为:" + amap.SCountry + "\n"; Debug.Log("国家为:" + sCountry); string sProvince = "省份为:" + amap.SProvince + "\n"; Debug.Log("省份为:" + sProvince); string sCity = "城市为:" + amap.SCity + "\n"; Debug.Log("城市为:" + sCity); string sDistrict = "城区为:" + amap.SDistrict + "\n"; Debug.Log("城区为:" + sDistrict); string sStreet = "街道为:" + amap.SStreet + "\n"; Debug.Log("街道为:" + sStreet); string sStreetNum = "街道牌号为:" + amap.SStreetNum + "\n"; Debug.Log("街道牌号为:" + sStreetNum); string sCityCode = "城市编码为:" + amap.SCityCode + "\n"; Debug.Log("城市编码为:" + sCityCode); string sAdCode = "地区编码为:" + amap.SAdCode + "\n"; Debug.Log("地区编码为:" + sAdCode); string sAoiInfo = "定位AOI信息为:" + amap.SAoiInfo + "\n"; Debug.Log("定位AOI信息为:" + sAoiInfo); string sLongitudes = "经度为:" + amap.Longitude + "\n"; Debug.Log("经度为:" + sLongitudes); string sLatitudes = "纬度为:" + amap.Latitude + "\n"; Debug.Log("纬度为:" + sLatitudes); sb.Append(sIdAddr); sb.Append(sCountry); sb.Append(sProvince); sb.Append(sCity); sb.Append(sDistrict); sb.Append(sStreet); sb.Append(sStreetNum); sb.Append(sCityCode); sb.Append(sAdCode); sb.Append(sAoiInfo); sb.Append(sLongitudes); sb.Append(sLatitudes); if (sIdAddr.Contains("未找到地址")) { Player.Instance.Address = "未找到地址!请检查定位信息..."; StartAmapLocation(); } else { Player.Instance.Address = amap.SIdAddr; //发送定位信息 ClientToServerMsg.SetAdrress(amap.SIdAddr); } } else { GameData.Tips = ((ErrorMessage)amap.NErrorCode).ToString(); UIManager.Instance.ShowUiPanel(UIPaths.PanelTips, OpenPanelType.MinToMax); SoundManager.Instance.PlaySound(UIPaths.SOUND_BUTTON); Debug.Log(((ErrorMessage)amap.NErrorCode).ToString()); } #endif }