课程:
android 新手,求一个GPS定位获得经纬度的Demo,或者获取邻近基站编号,邮箱2109792930@qq.com
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.androidxx.yangjw.day30_baidu_map_location_demo.R;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.TextureMapView;
import com.baidu.mapapi.model.LatLng;
/**
* 密钥:每一个APP密钥必须包名和APP的包名一致
*/
public class MainActivity extends AppCompatActivity implements BDLocationListener{
private TextureMapView mapView;
private LocationClient locationClient;
private BaiduMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//1、初始化SDK
//参数:必须是全局上下文
//initialize方法必须放在setContentView之前
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
mapView = (TextureMapView) findViewById(R.id.baidu_map_view);
//地图对象
map = mapView.getMap();
locationClient = new LocationClient(getApplicationContext());
locationClient.registerLocationListener(this);
//开启定位
locationClient.start();
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
public void onReceiveLocation(BDLocation bdLocation) {
double latitude = bdLocation.getLatitude();
double longitude = bdLocation.getLongitude();
//经纬度对象
LatLng latLng = new LatLng(latitude, longitude);
/**
* 参数1:经纬度对象
* 参数2:缩放级别 3-27
*/
MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLngZoom(latLng, 15);
//将地图显示在指定的经纬度的位置
map.setMapStatus(mapStatusUpdate);
}
}
如何在unity里使用gps定位
百度的SDKdemo下下来之后,如果有类是继承application的话,就不行,所以你得把跟定位所有的东西都整合到一个Activity里,这样基本就不会出现什么问题,关于如何集成,可以参考慕课网的视频教程。
手机gps定位怎么更改?
利用开发者的一些调试功能,我们可以修改非越狱的苹果手机定位,模拟任意位置。
经测试,此方法仅限开发者调试使用,并不能长时间修改手机定位。
1. 首先需要了解一些坐标系的知识
iOS,原生坐标系为 WGS-84
高德以及国内坐标系:GCS-02
百度的偏移坐标系:BD-09
这些先了解,下面需要用到转换
2. 从高德地图拾取网页上找到要模拟的地点坐标,这里我测试使用 九寨沟
得到高德坐标:103.627229,32.755169
由于此坐标在手机上地图显示时,会有偏移误差,所以需要转换成 WGS-84苹果用;
在网上找算法转换后:
得到九寨沟坐标:33.144513 103.910688
在后面的.gpx文件中就放上转换后的坐标,以后修改此处来模拟其他位置
3. 用Xcode创建一个工程FakeGPS
此时在外面新建立一个 JZG.gpx 的 XML 文件 文件信息如下,然后导入工程
?xml version="1.0" encoding="UTF-8" ?gpx version="1.1"
creator="GMapToGPX 6.4j - "
xmlns=""
xmlns:xsi=""
xsi:schemaLocation=" "
wpt lat="33.144513" lon="103.910688"
namechengdu/name
cmt九寨沟/cmt
desc九寨沟/desc
/wpt/gpx
4. 在工程 Produce---Scheme---Eidt Scheme---Options ---
在 Default location 里面选择导入的 JZG ;就是上面JZG.gpx的文件名,对应上述地理位置;
OK, 真机运行FakeGPS工程;
5. 在手机上运行FakeGPS工程,然后打开 手机上的高德地图app,定位,即可看到当前位置已模拟在目的地了,
同样查看微信定位,也是要模拟的位置了;
6. 实测上面的位置并不会永久修改,当模拟位置的app退出或是一些其他原因模拟的位置就会不在起作用;
也印证了该功能仅用于开发者调试使用,不过对于一些短时间的修改位置测试使用场景够用了
7. 演示工程的DEMO下载