導航:首頁 > 操作系統 > android百度地圖定位城市

android百度地圖定位城市

發布時間:2022-07-05 04:27:21

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

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

B. 怎麼在android百度地圖通過經緯度來定位並且顯示出地圖位置

可以參考如下內容:

使用Android自帶的LocationManager和Location獲取位置的時候,經常會有獲取的location為null的情況,並且操作起來也不是很方便,在這個Demo里我使用了網路地圖API中的定位SDK,可以一次性獲取當前位置經緯度以及詳細地址信息,還可以獲取周邊POI信息,同時可以設定位置通知點,當到達某一位置時,發出通知信息等方式來告知用戶。jar包下載以及官方文檔請參照:網路定位SDK,前提是需要注冊網路開發者賬號。
下面來看看定位的基本原理,目前,定位SDK可以通過GPS、基站、Wifi信號進行定位。基本定位流程如下圖所示,當應用程序向定位SDK發起定位請求時,定位SDK會根據當前的GPS、基站、Wifi信息生成相對應的定位依據。然後定位SDK會根據定位依據來進行定位。如果需要,定位SDK會向定位伺服器發送網路請求。定位伺服器會根據請求的定位依據推算出對應的坐標位置,然後根據用戶的定製信息,生成定位結果返回給定位SDK。

C. 安卓開發,不聯網怎樣定位我用的是百度地圖

可以下載離線地圖定位。

1.打開網路地圖App,依次點擊【我的】→【離線地圖】→【城市列表】,選擇你要下載的城市地圖,點擊右側的下載按鈕。如下圖所示:

D. Android開發中百度地圖的定位為什麼總是北京,不是自己的位置

給,對照一下
可能的問題:1.用虛擬機,虛擬機定位就是在北京。
2.手機(或虛擬機)是否開啟了GPS功能

------------------------------
public class MainActivity extends AppCompatActivity {

MapView mMapView = null;
private BaiMap mBaiDuMap;
public LocationClient mLocationClient;
// public BDLocationListener myListener = new MyLocationListener();
public MyLocationListener myListener = new MyLocationListener();
private BitmapDescriptor mCurrentMarker;
private MyLocationConfiguration.LocationMode mCurrentMode;

// 經緯度
private TextView tvJingDu;
// 緯度
private TextView tvWeiDu;
// 高度
private TextView tvGaoDu;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);

// 經緯度TextView 初始化
tvJingDu = (TextView) findViewById(R.id.tv_jing_);
tvWeiDu = (TextView) findViewById(R.id.tv_wei_);
tvGaoDu = (TextView) findViewById(R.id.tv_gao_);

//===================================
// 普通模式
mCurrentMode = MyLocationConfiguration.LocationMode.COMPASS;

// TODO
// mCurrentMarker = BitmapDescriptorFactory.fromResource(R.drawable.dingwei);
mCurrentMarker = null;

// 找到地圖控制項
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiDuMap = mMapView.getMap();// 獲取地圖

mBaiDuMap.setMapType(BaiMap.MAP_TYPE_NORMAL);// 設置地圖模式為普通模式

// 開啟定點陣圖層
mBaiDuMap.setMyLocationEnabled(true);
mLocationClient = new LocationClient(this); // 定位用到一個類
mLocationClient.registerLocationListener(myListener);// 注冊監聽

// TODO
mBaiDuMap.setMyLocationConfigeration(new MyLocationConfiguration(
mCurrentMode, true, mCurrentMarker, R.color.myBlue, Color.YELLOW
));

// LocationClientOption類用來設置SDK的位置方式
LocationClientOption option = new LocationClientOption();//以下是給定位設置參數
option.setOpenGps(true); // 打開gps
option.setCoorType("bd09ll"); // 設置坐標類型
option.setScanSpan(2000);
mLocationClient.setLocOption(option);
mLocationClient.start();

}

boolean isFirstLoc = true; // 是否首次定位

// 3.網路位置監聽
public class MyLocationListener implements BDLocationListener {

@Override
public void onReceiveLocation(BDLocation location) {
Log.i("監聽被執行了", "監聽被執行了");

if (location == null || mMapView == null) {
return;
}

// // 定位結果
// StringBuffer sb = new StringBuffer(256);
// StringBuffer sb1 = new StringBuffer(256);
// StringBuffer sb2 = new StringBuffer(256);
// // 經度
// String jd = sb.append(location.getLongitude()).toString();
// tvJingDu.setText("" + jd);
// Log.i("經度", "" + jd);
// // 緯度
// String wd = sb1.append(location.getLatitude()).toString();
// tvWeiDu.setText("" + sb1);
// Log.i("緯度", "" + wd);
//
// String gao = sb.append(location.getAltitude()).toString();
// tvGaoDu.setText("" + gao);
// 經度
double d1 = location.getLongitude();
String s1 = "" + d1;
tvWeiDu.setText(s1);
Log.i("經度", "" + s1);
// 緯度
double d2 = location.getLatitude();
Log.i("TGA", "d2" + d2);
String s2 = "" + d2;
tvJingDu.setText(s2);
Log.i("緯度", "" + s2);

MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此處設置開發者獲取到的方向信息,順時針0-360
.direction(0).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
mBaiDuMap.setMyLocationData(locData);

if (isFirstLoc) {
isFirstLoc = false;
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
MapStatus.Builder builder = new MapStatus.Builder();
// 縮放的等級 12.0f
builder.target(ll).zoom(18.0f);
mBaiDuMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
}
Log.i("MyLocationListener被執行了!", "onReceiveLocation");

}

@Override
public void onConnectHotSpotMessage(String s, int i) {

}
}

// 結束方法

@Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
}

@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}

@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}
}

E. 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簡單。

F. 為什麼百度地圖android定位不準確

都會有誤差的情況,參考如下內容解釋:
基站精度為平均200米左右,視運營商基站覆蓋范圍而定。WIFI精度為20米左右。GPS精度最高,為10米左右(取決於晶元)。在戶外,先開啟GPS再進行定位,結果較准。但GPS比較費電,且在室內不可用。
另外,&addr=detail 想要獲取完整地址(詳細到門牌號),或者&addr=rough 想要獲得到城市一個級別的地址(比如返回中國北京北京);
上面這段是網路官方文檔裡面的解釋: 這個我 在做的時候基本是這種情況, 文檔裡面提到的 精度取決於晶元的問題,其實就是不同手機設備的差異。這個我專門做過測試,我用了5台手機測試: htc one ,三星I9118,htc t328w,紅米1s,聯想a820 。 這5台手機在室外同一個位置網路地圖定位獲取 經緯度坐標,測試結果是:
htc one 誤差2-3米 有時候是0-1米 非常精確了相對來說,htc t328w 紅米1s,聯想 都是 15-30米左右,三星那個機型稍微差點 定位速度不僅慢,而且誤差也較大 誤差有時候是200多米,穩定後也是80米左右。這個穩定的意思是 ,gps初始化需要時間的,一般要2-3分鍾以後,誤差范圍的數字會越來越小。
獲取誤差范圍的方法是:BDLocation類下的方法 location.getRadius();//獲取定位精度

G. 百度安卓地圖定位的原理

網路地圖是通過移動通信基站定位來確定當前位置所在的城市。其原理就是通過測算周圍基站與手機的距離來交會估算手機的空間位置。

  1. 手機定位是指通過特定的定位技術來獲取移動手機或終端用戶的位置信息(經緯度坐標),在電子地圖上標出被定位對象的位置的技術或服務。

  2. 定位技術有兩種,一種是基於GPS的定位,一種是基於移動運營網的基站的定位。基於GPS的定位方式是利用手機上的GPS定位模塊將自己的位置信號發送到定位後台來實現手機定位的。基站定位則是利用基站對手機的距離的測算距離來確定手機位置的。後者不需要手機具有GPS定位能力,但是精度很大程度依賴於基站的分布及覆蓋范圍的大小,有時誤差會超過一公里。前者定位精度較高。此外還有利用Wifi在小范圍內定位的方式。


H. 為什麼百度地圖 Android 版不用開啟 GPS 就能實現定位

手機版網路地圖定位有多種方式,有衛星定位(包括GPS)、IP定位(接入數據網路)、WIFI小區定位(接入WLAN熱點),等等。上述各種定位方式只要有一種具備條件,就可以實現定位,並非必須開啟GPS。
網路地圖的WIFI小區定位還有個特點,就是連接WIFI時,並不需要必須接通網路,有時只要搜索到信號就可以定位。

I. android百度地圖 怎樣在剛進入地圖時顯示當地城市

首先你得知道城市的經緯度,通過定位取一下就行,然後

LatLng p = new LatLng(latitude,longitude);
MapStatus mMapStatus = new MapStatus.Builder().target(p).zoom(18)
.build();
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory
.newMapStatus(mMapStatus);

mBaiMap = mMapView.getMap();
mBaiMap.setMapStatus(mMapStatusUpdate);

J. android怎麼使用百度地圖定位

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

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

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

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

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

閱讀全文

與android百度地圖定位城市相關的資料

熱點內容
java常用的伺服器 瀏覽:277
集結APP在哪裡下載 瀏覽:798
歐洲cf玩什麼伺服器 瀏覽:527
如何連接另一台電腦上的共享文件夾 瀏覽:679
如何讓桌面文件夾搬家到e盤 瀏覽:71
java自動格式化 瀏覽:617
ipad怎麼查看文件夾大小 瀏覽:581
手工粘土解壓球 瀏覽:550
在線視頻教育源碼 瀏覽:39
快四十學什麼編程 瀏覽:754
gnumakelinux 瀏覽:537
視易峰雲伺服器怎麼改系統 瀏覽:535
javamap取值 瀏覽:768
mac和win磁碟加密軟體 瀏覽:474
蘋果為什麼會連接不到伺服器 瀏覽:726
pdf格式文件如何保存 瀏覽:303
小霸王伺服器tx什麼意思 瀏覽:75
解釋dns命令 瀏覽:584
dmx512怎麼編程 瀏覽:744
北京雲主機17t雲伺服器 瀏覽:232