百度地图定位 为什么经纬度是准确的 而在地图上标注却偏离很远

小横 2015-05-11 05:07:15
我是按网上论坛写的 让后下载他们的demo地图上标注是正确的 而我自己的地图上标注却偏离很远

package com.example.baidu_text;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.baidu.lbsapi.BMapManager;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.LocationClientOption.LocationMode;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.DotOptions;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.model.LatLng;
import com.baidu.nplatform.comapi.map.MapController;

public class MainActivity extends Activity {
MapView mMapView = null;
BaiduMap mBaiduMap;
String mm;
Button button;
double latitude;
double longitude;
BaiduMap bdMap;
private BMapManager mBMapManager;
BitmapDescriptor mCurrentMarker;
private MapController mMapController = null;
BDLocation location;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
mMapView = (MapView)findViewById(R.id.bmapView);

bdMap = mMapView.getMap();



LocationClient locationClient = new LocationClient(getApplicationContext());
LocationClientOption locOption = new LocationClientOption();
locOption.setLocationMode(LocationMode.Hight_Accuracy);
locOption.setCoorType("bd0911");
locOption.setScanSpan(5000);
locOption.setIsNeedAddress(true);
locOption.setNeedDeviceDirect(true);
locationClient.setLocOption(locOption);
locationClient.registerLocationListener(new MyLocationListener());
locationClient.start();
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

LatLng ll = new LatLng(latitude, longitude);
MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(ll);
bdMap.animateMapStatus(msu);
Toast.makeText(MainActivity.this, mm, Toast.LENGTH_LONG).show();
TextOptions textOptions = new TextOptions();
textOptions.bgColor(0xFFFF00)
.fontSize(10)
.fontColor(0xFFFF00FF)
.text("当前位置")
.rotate(-30)

.position(ll);
bdMap.addOverlay(textOptions);

String mm =latitude+"";
String nn =longitude+"";
Toast.makeText(MainActivity.this, mm+"__"+nn, Toast.LENGTH_LONG).show();
}
});


}

class MyLocationListener implements BDLocationListener{

@Override
public void onReceiveLocation(BDLocation arg0) {
mm = arg0.getCity();
latitude = arg0.getLatitude();
longitude = arg0.getLongitude();
location = arg0;


}

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

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

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

mMapView.onPause();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
...全文
9296 10 打赏 收藏 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
做错下一步 2018-12-31
  • 打赏
  • 举报
回复
楼上那俩真是睿智。还故意偏差。。。。
看了百度的文档发现这么一句话

所以只要初始化的时候,调用LocationClientOption对象option.setCoorType("bd09ll");改坐标模式就好了
伟哥就来了 2016-06-28
  • 打赏
  • 举报
回复
我的是写的bd09ll,结果还是有偏差啊
小横 2015-05-14
  • 打赏
  • 举报
回复
谢谢大家了 我后来自己发现问题了 我把bd09ll 写成 bd0911了 真是马虎
开发者_android 2015-05-12
  • 打赏
  • 举报
回复
只是偶尔的吗? 因为,有时候,你给的经纬度对应的地址,它的数据库中也没有,所以,就选择一个比较接近的结果。 你试试换个有标志性的经纬度测试一下看看。
lovemoreh 2015-05-12
  • 打赏
  • 举报
回复
CoordinateConverter类,限于V3以上版本。 我们用的著名的付费火星地图。
windfury_plus 2015-05-12
  • 打赏
  • 举报
回复
1、试一下location.isOpenGps() 打开gps定位会不会好一些 2、BDLocationListener里,貌似获得了位置但是没在界面上更新吧? 这个看百度的location的demo就好了
tcmakebest 2015-05-12
  • 打赏
  • 举报
回复
好单纯的楼主,我告诉你,在中国所有正规的地图都是偏的,谷歌地图不想偏被赶走了. 要在哪个地图上显示,就要使用哪个地图对应的转换函数,不能混用,而且不能反向转换.
小横 2015-05-11
  • 打赏
  • 举报
回复
但是经纬度是正确的 就是物理位置不正确 是这个问题 我一开始好像没有说明白
小横 2015-05-11
  • 打赏
  • 举报
回复
我自己用的百度的api 用网友写的定位很标注很准确 我自己的 定位偏离很远
开发者_android 2015-05-11
  • 打赏
  • 举报
回复
这个是很早就认定的事情,百度也会出来一堆结果的。 1.代码纠偏 2.查询纠偏数据库。 第1种方便些。
内容概要:本文提出了一种基于高保真电磁暂态仿真的智能电网虚假数据注入攻击(FDIA)数据集构建与影响分析方法,依托PSCAD与MATLAB联合仿真平台,构建IEEE标准测试系统(如9节点或39节点系统)的精细化电磁暂态模型,精确模拟电网在正常运行及遭受FDIA下的动态响应过程,采集高精度、高时间分辨率的电压、电流、功率等电气量时序数据,生成具有强物理约束性和可复现性的攻击数据集。研究进一步结合现代状态估计理论、残差检测机制与机器学习分类算法,对FDIA的隐蔽性特征、攻击传播路径、系统关键变量偏移程度及暂态稳定性影响进行系统性量化评估,旨在为智能电网安全防护体系的设计、入侵检测模型的训练与攻防策略的有效性验证提供高可信度的数据基础与理论支撑。; 适合人群:面向电力系统自动化、能源互联网安全、工业控制系统安全等方向的研究生、科研人员及工程技术人员,要求具备电力系统分析、状态估计基础、MATLAB/PSCAD联合仿真能力以及基本的网络安全背景知识。; 使用场景及目标:① 复现和验证主流FDIA相关学术论文中的攻击模型与检测算法;② 构建符合实际物理规律、可用于训练深度学习或机器学习驱动的入侵检测系统(IDS)的真实攻击数据集;③ 深入探究虚假数据注入对电网暂态稳定性、继电保护动作逻辑、频率调节等关键功能的影响机理。; 阅读建议:本资源以高保真仿真为核心,强调数据生成的真实性与实验可重复性,读者应重点关注PSCAD与MATLAB之间的数据交互机制、攻击向量的设计原则与注入方式、以及多维度影响评估指标体系的构建方法,建议结合所提供的仿真模型与代码进行动手实践与结果验证。
内容概要:本文系统阐述了基于格子Boltzmann方法(Lattice Boltzmann Method, LBM)对二维通道内多孔介质流动进行数值模拟的理论体系、Matlab代码实现流程及结果验证方法。深入剖析了LBM在处理复杂流体系统尤其是不规则几何结构多孔介质流动中的独特优势,详细介绍了模型构建过程、边界条件设定、碰撞与传播环节的算法实现机制,并通过Matlab编程完成仿真运算,实现了对速度场、压力场等关键物理量的可视化分析与精度验证,确保模拟结果具备良好的准确性与可靠性。; 适合人群:具备流体力学基础知识和一定Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事多孔介质流动、计算流体力学(CFD)或LBM方法研究的相关领域研究人员。; 使用场景及目标:①掌握格子Boltzmann方法的核心原理及其在多孔介质流动模拟中的具体应用;②学习利用Matlab实现LBM算法并开展科学计算与结果可视化的方法;③为相关科研项目、学术论文复现或实际工程仿真提供可复用的代码框架与技术实施路径。; 阅读建议:建议读者结合流体力学与数值计算相关背景知识,逐步理解算法推导过程,动手运行并调试所提供的Matlab代码,通过调整参数或几何模型加深对LBM方法灵活性与适用性的认识,同时鼓励将该方法拓展至三维流动或多物理场耦合问题的研究中。

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧