㈠ 为什么百度地图 android 版不用开启 GPS 就能实现定位
手机版网络地图定位有多种方式,有卫星定位(包括GPS)、IP定位(接入数据网络)、WIFI小区定位(接入WLAN热点),等等。上述各种定位方式只要有一种具备条件,就可以实现定位,并非必须开启GPS。
网络地图的WIFI小区定位还有个特点,就是连接WIFI时,并不需要必须接通网络,有时只要搜索到信号就可以定位。
㈡ android编程怎么把GPS坐标转换为百度地图坐标
网络地图 Android SDK 或者 iOS SDK 或者各种各样的 API 工具产品,都使用的是网络自己经过加密的坐标体系。
众多开发者在使用过程中,位置点都是通过 GPS 或者其他途径获取的,所以与网络地图所使用的坐标系存在差异。
开发者在将这些空间位置信息运用到地图地图上得时候,需要进行响应的纠偏(坐标转换),Android SDK 为广大开发者早已开放了响应的坐标转换方法,
开发者只需要短短的几行代码就可以实现相应的坐标转换操作了。
具体方法如下:
[java] view plain
// 将google地图、soso地图、aliyun地图、mapabc地图和amap地图// 所用坐标转换成网络坐标
CoordinateConverter converter = new CoordinateConverter();
converter.from(CoordType.COMMON);
// sourceLatLng待转换坐标
converter.coord(sourceLatLng);
LatLng desLatLng = converter.convert();
// 将GPS设备采集的原始GPS坐标转换成网络坐标
CoordinateConverter converter = new CoordinateConverter();
converter.from(CoordType.GPS);
// sourceLatLng待转换坐标
converter.coord(sourceLatLng);
LatLng desLatLng = converter.convert();
㈢ 安卓手机百度地图如何使用外置蓝牙GPS导航
安卓手机上网络地图使用外置蓝牙GPS导航,您可以直接在网络地图的设置中选择使用手机自带的流量数据来导航当前的位置。
㈣ 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();
}
}
㈤ android百度地图用gps定位出现偏移,怎么解决
原因:
1丶检查手机是否有明显的碰撞痕迹,可能是由于手机进行了碰撞而导致手机的gps损坏从而无法进行定位。有的人手机摔了之后无线网就不能用了,或者蓝牙不能开,都是因为手机碰撞造成的。
2丶进入网络地图的app,检查是否是最新版本的app手机应用,如果不是,请及时进行更新,如果是经常处在wifi环境下,可以勾选wifi环境下自动更新的选项。
3丶在手机的安全中心中,查看是否给了网络地图app的权限,如果没有的话,可以打开,这样一来,手机授权网络地图gps定位服务,从而使网络地图可以定位自己的位置。
4丶检查一下自己下的网络地图app是否是真正的官方授权的正版软件。
㈥ android 百度地图怎么获取不到GPS定位
原因:
1丶检查手机是否有明显的碰撞痕迹,可能是由于手机进行了碰撞而导致手机的GPS损坏从而无法进行定位。有的人手机摔了之后无线网就不能用了,或者蓝牙不能开,都是因为手机碰撞造成的。
2丶进入网络地图的APP,检查是否是最新版本的APP手机应用,如果不是,请及时进行更新,如果是经常处在wifi环境下,可以勾选wifi环境下自动更新的选项。
3丶在手机的安全中心中,查看是否给了网络地图APP的权限,如果没有的话,可以打开,这样一来,手机授权网络地图GPS定位服务,从而使网络地图可以定位自己的位置。
4丶检查一下自己下的网络地图APP是否是真正的官方授权的正版软件。