當前位置:首頁 » 安卓系統 » android定位城市

android定位城市

發布時間: 2023-02-14 14:05:11

Ⅰ android怎麼使用百度地圖定位

打開應用商店,搜索網路地圖,下載安裝

安裝完成,雙擊打開網路地圖

打開界面,會提示你,打開GPS開關,這樣就可以更好的定位

打開定位後,點我的-離線包下載-下載離線地圖-選擇城市列表-所在城市下載,離線地圖的用處就是可以不用開流量也可以定位

點圖標,會自動定位,你所在位置

Ⅱ android開發如何用高德地圖進行模擬定位.

一、 要實現高德地圖定位呢,首先需要做好以下幾步准備:
1. 在高德開放平台注冊帳號

2. 在開發中下載Android平台下的地圖SDK和定位SDK文件
進入相關下載下載自己想要的功能或文件,圖只是截取了地圖SDK的頁面,定位SDK也是一樣,按自己想要的文件下載。下載完成後解壓得到:
- 3D地圖包解壓後得到:3D地圖顯示包「AMap_3DMap_VX.X.X_時間.jar」和庫文件夾(包含armeabi、arm64-v8a等庫文件)。
- 2D地圖包解壓後得到:2D地圖顯示包「AMap_2DMap_VX.X.X_時間.jar 」
- 定位SDK下載並解壓得到定位包「AMap_Location_V2.x.x.jar「
3. 添加jar包,將jar包放入工程的libs目錄下。

對於每個jar文件,右鍵-選擇Add As Library,導入到工程中。或者使用菜單欄 選擇 File ->Project Structure->Moles-> Dependencies。點擊綠色的加號選擇File dependency. 然後選擇要添加的jar包即可,此時build.gradle中會自動生成如下信息。

創建自己的應用(創建過程內需要的SHA1已經的博客講過)

開發環境已經配置好了,接下來就是敲代碼了。
二、 首先我們要做的就是將地圖顯示出來,通過以下幾步操作,即可在應用中使用高德地圖SDK:
第一步:添加用戶key 在工程的「 AndroidManifest.xml 」文件如下代碼中添加您的用戶 Key。
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"

android:theme="@style/AppTheme">
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="" />123456789

第二步:添加所需許可權 在工程的「 AndroidManifest.xml 」文件中進行添加。
//地圖包、搜索包需要的基礎許可權

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

//定位包、導航包需要的額外許可權(註:基礎許可權也需要)
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />1234567891011121314

第三步:在布局xml文件中添加地圖控制項。
<com.amap.api.maps2d.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />1234

第四步,創建地圖Activity,管理地圖生命周期。
public class MainActivity extends Activity {
private MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//獲取地圖控制項引用
mMapView = (MapView) findViewById(R.id.map_view);
//在activity執行onCreate時執行mMapView.o

mMapView.onCreate(savedInstanceState);
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity執行onDestroy時執行mMapView.onDestroy(),實現地圖生命周期管理
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
//在activity執行onResume時執行mMapView.onResume (),實現地圖生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity執行onPause時執行mMapView.onPause (),實現地圖生命周期管理
mMapView.onPause();
}
@Override

protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//在activity執行onSaveInstanceState時執行mMapView.onSaveInstanceState (outState),實現地圖生命周期管理
mMapView.onSaveInstanceState(outState);
}

}

注意:一定要有mMapView.onCreate(savedInstanceState);
第二步:啟動定位功能:
1. 在主線程中獲得地圖對象AMap,並設置定位監聽且實現LocationSource介面:

public class MainActivity extends Activity implements LocationSource{1
if (aMap == null) {
aMap = mMapView.getMap();
//設置顯示定位按鈕 並且可以點擊
UiSettings settings = aMap.getUiSettings();
aMap.setLocationSource(this);//設置了定位的監聽,這里要實現LocationSource介面
// 是否顯示定位按鈕
settings.setMyLocationButtonEnabled(true);
aMap.setMyLocationEnabled(true);//顯示定位層並且可以觸發定位,默認是flase
}123456789
2. 配置定位參數,啟動定位

//初始化定位

mLocationClient = new AMapLocationClient(getApplicationContext());
//設置定位回調監聽,這里要實現AMapLocationListener介面,AMapLocationListener介面只有onLocationChanged方法可以實現,用於接收非同步返回的定位結果,參數是AMapLocation類型。
mLocationClient.setLocationListener(this);
//初始化定位參數
mLocationOption = new AMapLocationClientOption();
//設置定位模式為Hight_Accuracy高精度模式,Battery_Saving為低功耗模式,Device_Sensors是僅設備模式
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
//設置是否返回地址信息(默認返回地址信息)
mLocationOption.setNeedAddress(true);
//設置是否只定位一次,默認為false
mLocationOption.setOnceLocation(false);
//設置是否強制刷新WIFI,默認為強制刷新
mLocationOption.setWifiActiveScan(true);
//設置是否允許模擬位置,默認為false,不允許模擬位置
mLocationOption.setMockEnable(false);
//設置定位間隔,單位毫秒,默認為2000ms
mLocationOption.setInterval(2000);
//給定位客戶端對象設置定位參數
mLocationClient.setLocationOption(mLocationOption);
//啟動定位
mLocationClient.startLocation();

高精度定位模式:
在這種定位模式下,將同時使用高德網路定位和GPS定位,優先返回精度高的定位

低功耗定位模式:
在這種模式下,將只使用高德網路定位

僅設備定位模式:
在這種模式下,將只使用GPS定位。

3. 實現AMapLocationListener介面,獲取定位結果:

public class MainActivity extends Activity implem

@Override
public void onLocationChanged(AMapLocation aMapLocation) {
if (aMapLocation != null) {
if (aMapLocation.getErrorCode() == 0) {
//定位成功回調信息,設置相關消息
aMapLocation.getLocationType();//獲取當前定位結果來源,如網路定位結果,詳見官方定位類型表
aMapLocation.getLatitude();//獲取緯度
aMapLocation.getLongitude();//獲取經度
aMapLocation.getAccuracy();//獲取精度信息
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(aMapLocation.getTime());
df.format(date);//定位時間
aMapLocation.getAddress();//地址,如果option中設置isNeedAddress為false,則沒有此結果,網路定位結果中會有地址信息,GPS定位不返回地址信息。
aMapLocation.getCountry();//國家信息
aMapLocation.getProvince();//省信息
aMapLocation.getCity();//城市信息
aMapLocation.getDistrict();//城區信息
aMapLocation.getStreet();//街道信息
aMapLocation.getStreetNum();//街道門牌號信息
aMapLocation.getCityCode();//城市編碼
aMapLocation.getAdCode();//地區編碼

// 如果不設置標志位,此時再拖動地圖時,它會不斷將地圖移動到當前的位置
if (isFirstLoc) {
//設置縮放級別
aMap.moveCamera(CameraUpdateFactory.zoomTo(17));
//將地圖移動到定位點
aMap.moveCamera(CameraUpdateFactory.changeLatLng(new LatLng(aMapLocation.getLatitude(), aMapLocation.getLongitude())));
//點擊定位按鈕 能夠將地圖的中心移動到定位點
mListener.onLocationChanged(aMapLocation);
//獲取定位信息
StringBuffer buffer = new StringBuffer();
buffer.append(aMapLocation.getCountry() + ""
+ aMapLocation.getProvince() + ""
+ aMapLocation.getCity() + ""
+ aMapLocation.getProvince()
+ aMapLocation.getDistrict() + ""
+ aMapLocation.getStreet() + ""
+ aMapLocation.getStreetNum());
Toast.makeText(getApplicationContext(), buffer.toString(), Toast.LENGTH_LONG).show();
isFirstLoc = false;
}
} else {
//顯示錯誤信息ErrCode是錯誤碼,errInfo是錯誤信息,詳見錯誤碼表。
Log.e("AmapError", "location Error, ErrCode:"
+ aMapLocation.getErrorCode() + ", errInfo:"
+ aMapLocation.getErrorInfo());
Toast.makeText(getApplicationContext(), "定位失敗", Toast.LENGTH_LONG).show();
}
}
}3839404142434445464748495051
4.關於停止定位

@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
//mLocationClient.stopLocation();//停止定位
mLocationClient.onDestroy();//銷毀定位客戶端。
//銷毀定位客戶端之後,若要重新開啟定位請重新New一個AMapLocationClient對象。
}

//激活定位
@Override
public void activate(OnLocationChangedListener onLocationChangedListener) {
mListener = onLocationChangedListener;
}

@Override
public void deactivate() {
mListener = null;
}12345678910111213141516171819

Ⅲ android定位城市

首先說明,定位城市是基於地圖服務API的。
GPS定位城市需要做兩個步驟:
1、取得用戶當前位置的經度,緯度。

2、根據經緯度轉換成城市名稱。
經緯度轉換成城市名稱,只能使用地圖服務了。自己做不來。
地圖服務API有兩個,一個是網路地圖,一個是谷歌地圖。網路地圖API調用需要注冊網路帳號,並申請APP_KEY,谷歌地圖API直接調用即可。
網路地圖API調用地址:http://api.map..com/geocoder?output=json&location=緯度,經度&key=APP_KEY
谷歌地圖服務API調用地址:http://maps.google.com/maps/api/geocode/json?latlng= 緯度,經度 &language=zh-CN&sensor=true
可以設置返回數據格式,JSON或者XML。
* 在Android上,解析JSON比解析XML簡單。

Ⅳ android如何獲取地理位置

三種方式進行定位,獲取用戶位置,分別是基於基站定位, 網路定位,GPS定位。
1.基站定位(passive):這是基於網路基站進行定位的,定位的精確度在幾十米到幾千米不等,在城市中基站覆蓋率比較高,推薦使用基站定位,如果是在郊區,基站相距較遠,基站的覆蓋沒有城裡好,定位的誤差比較大。如果在郊區不推薦使用基站定位。
2.網路定位:wifi定位,網路定位
3.GPS定位:與衛星進行通信。手機中嵌入了GPS模塊(精簡版的A-GPS),通過A-GPS搜索衛星, 獲取經緯度。使用GPS的弊端是:必須站在空曠的地方,頭頂對著天空,如果雲層厚了,也會受到一定的影響。精確度:10-50米
擴展知識:
使用Android是定位必備的許可權:
< uses-permission android:name= " android.permission.ACCESS_FINE_LOCATION " /> //精確定位
<uses-permission android:name= "android.permission.ACCESS_MOCK_LOCATION" /> //模擬器
<uses-permission android:name= "android.permission.ACCESS_COARSE_LOCATION" /> //粗糙定位

//獲取定位管理對象
LocationManager lm=(LocationManager)getSystemService(LOCATION_SERVICE);
String[] names=lm.getAllProviders();//獲取所有的位置提供者,一般三種

Criteria criteria=new Criteria();//查詢條件,如果設置了海拔,則定位方式只能是GPS;
criteria.setCostAllowed(true);//是否產生開銷,比如流量費
String provider=lm.getBaseProvider(criteria,true)//獲取最好的位置提供者,第二個參數為true,表示只獲取那些被打開的位置提供者

lm.requestLocationUpdates(provier,0,0,new LocationListener(){});//獲取位置。第二個參數表示每隔多少時間返回一次數據,第三個參數表示被定位的物體移動每次多少米返回一次數據。

private class MyLocationListener implements LocationListener {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {

}

@Override
public void onProviderEnabled(String provider) {

}

@Override

@Override
public void onLocationChanged(Location location) {
System. out.println( "服務中位置監聽發送了變化了" );
float accuracy = location.getAccuracy(); // 精確度
double altitude = location.getAltitude(); // 海拔
double latitude = location.getLatitude(); // 緯度
double longitude = location.getLongitude(); // 經度
String locationInfo = "jing:" + longitude + ",wei:" + latitude + ",haiba:" + altitude + ",jingque:" + accuracy;
Editor edit = sp.edit();
edit.putString( "location", locationInfo);
edit.commit();
}
} public void onProviderDisabled(String provider) {

}

Ⅳ android使用高德定位sdk獲取的城市名稱怎樣讓其他的界面進行調用

第一步,我們需要下載SDK
第二步,解壓後,將jar包放進libs文件夾中,並加入環境變數中。

第三步,在AndroidManifest.xml文件中配置許可權:
<!--用於進行網路定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!--用於訪問GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--用於獲取運營商信息,用於支持提供運營商信息相關的介面-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--用於訪問wifi網路信息,wifi信息會用於進行網路定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--用於獲取wifi的獲取許可權,wifi信息會用來進行網路定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<!--用於訪問網路,網路定位需要上網-->
<uses-permission android:name="android.permission.INTERNET"/>
<!--用於讀取手機當前的狀態-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!--用於寫入緩存數據到擴展存儲卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--用於申請調用A-GPS模塊-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

並在application標簽中添加:
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="你申請的key" />
<service android:name="com.amap.api.location.APSService" />

第四步,測試代碼:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;

public class MainActivity extends AppCompatActivity {
//聲明AMapLocationClient類對象
public AMapLocationClient mLocationClient = null;
//聲明定位回調監聽器
public AMapLocationListener mLocationListener = new MyAMapLocationListener();
//聲明AMapLocationClientOption對象
public AMapLocationClientOption mLocationOption = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}

private void init() {
//初始化定位
mLocationClient = new AMapLocationClient(getApplicationContext());
//設置定位回調監聽
mLocationClient.setLocationListener(mLocationListener);
//初始化AMapLocationClientOption對象
mLocationOption = new AMapLocationClientOption();
//設置定位模式為AMapLocationMode.Hight_Accuracy,高精度模式。
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
//獲取一次定位結果:
//該方法默認為false。
mLocationOption.setOnceLocation(false);

//獲取最近3s內精度最高的一次定位結果:
//設置setOnceLocationLatest(boolean b)介面為true,啟動定位時SDK會返回最近3s內精度最高的一次定位結果。如果設置其為true,setOnceLocation(boolean b)介面也會被設置為true,反之不會,默認為false。
mLocationOption.setOnceLocationLatest(true);
//設置是否返回地址信息(默認返回地址信息)
mLocationOption.setNeedAddress(true);
//設置是否允許模擬位置,默認為false,不允許模擬位置
mLocationOption.setMockEnable(false);
//關閉緩存機制
mLocationOption.setLocationCacheEnable(false);
//給定位客戶端對象設置定位參數
mLocationClient.setLocationOption(mLocationOption);
//啟動定位
mLocationClient.startLocation();

}

private class MyAMapLocationListener implements AMapLocationListener {

@Override
public void onLocationChanged(AMapLocation aMapLocation) {
if (aMapLocation != null) {
if (aMapLocation.getErrorCode() == 0) {
Log.e("位置:", aMapLocation.getAddress());
} else {
//定位失敗時,可通過ErrCode(錯誤碼)信息來確定失敗的原因,errInfo是錯誤信息,詳見錯誤碼表。
Log.e("AmapError", "location Error, ErrCode:"
+ aMapLocation.getErrorCode() + ", errInfo:"
+ aMapLocation.getErrorInfo());
}
}
}
}
}

安卓手機怎麼改定位

安卓手機改定位方法如下:
1、首先打開手機,進入手機桌面之後,下拉通知欄,然後在通知欄中找到GPS功能,點擊打開GPS。
2、在彈出的位置信息界面,點擊開啟位置服務,然後在下方選擇節電功能打開GPS功能之後,回到手機桌面,找到設置圖標,點擊打開設置,進入設置界面之後,在界面中找到更多設置選項,點擊打開。
3、進入更多設置界面之後,在下方找到開發者選項,點擊打開,進入開發者選項界面之後,選擇模擬位置信息應用選項,點擊打開之後,知道FAKELOCATION功能,點擊使用。
4、然後回到桌面,找到FAKELOCATION軟體圖標,點擊打開進入軟體界面之後,可以進行位置的選擇了。
5、放大地圖,找到需要的地址,點擊選擇地址,出現紅點之後,就可以點擊界面中的開始按鈕,開始模擬。

Ⅶ android 版百度地圖如何通過定位功能獲得當前的位置所在的城市

網路地圖是通過移動通信基站定位來確定當前位置所在的城市。其原理就是通過測算周圍基站與手機的距離來交會估算手機的空間位置。
手機定位是指通過特定的定位技術來獲取移動手機或終端用戶的位置信息(經緯度坐標),在電子地圖上標出被定位對象的位置的技術或服務。定位技術有兩種,一種是基於GPS的定位,一種是基於移動運營網的基站的定位。基於GPS的定位方式是利用手機上的GPS定位模塊將自己的位置信號發送到定位後台來實現手機定位的。基站定位則是利用基站對手機的距離的測算距離來確定手機位置的。後者不需要手機具有GPS定位能力,但是精度很大程度依賴於基站的分布及覆蓋范圍的大小,有時誤差會超過一公里。前者定位精度較高。此外還有利用Wifi在小范圍內定位的方式。

熱點內容
如何通過伺服器id找到主人 發布:2025-05-17 06:12:11 瀏覽:36
ug編程吧 發布:2025-05-17 06:07:45 瀏覽:71
sql臨時表和表變數 發布:2025-05-17 06:02:38 瀏覽:723
蘋果如何用安卓無線耳機 發布:2025-05-17 06:01:53 瀏覽:821
sqlserver表關系 發布:2025-05-17 06:01:02 瀏覽:996
2017途觀配置什麼音響 發布:2025-05-17 05:53:50 瀏覽:843
64位安裝sql2000 發布:2025-05-17 05:33:17 瀏覽:845
安卓手機屏幕儀哪個好 發布:2025-05-17 05:33:16 瀏覽:592
加密的備忘錄 發布:2025-05-17 05:32:30 瀏覽:743
企業應用鎖初始密碼多少 發布:2025-05-17 05:26:04 瀏覽:834