- 浏览: 253260 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
aaddsfdsfsdfs:
var map = new AMap.Map('contain ...
【map】使用高德地图显示地图轨迹 -
di1984HIT:
xiang
【linux】使用bind进行DNS配置 -
di1984HIT:
分别算么??
【java】改写js百度地图测距方法 -
di1984HIT:
不错不错。。
【LBS】使用高德地图实现轨迹路线 -
di1984HIT:
不好用啊???
【map】使用高德地图显示地图轨迹
采用百度开放平台的api对自己位置的定位的好处有很多。
1,完全不需要你做任何事情。程序自动给调用。
2,稳定。流量少。之前做的有些程序是从网络上抓取自己的ip地址来进行定位。
而百度的这个,返回一些你位置的基本信息。
一下就是代码:
基础类,这个类保存个人位置信息。
第二个为百度返回json的解析类,将获得的信息解析到基础类中进行保存。
第三个为layout的main.xml
最后是activity。可以显示地图和定位的。
最后还有权限:
1,完全不需要你做任何事情。程序自动给调用。
2,稳定。流量少。之前做的有些程序是从网络上抓取自己的ip地址来进行定位。
而百度的这个,返回一些你位置的基本信息。
一下就是代码:
基础类,这个类保存个人位置信息。
package com.duduli.li; public class Addr { private String time; private String error; private String pointX; private String PointY; private String radius; private String addr; public String getTime() { return time; } public void setTime(String time) { this.time = time; } public String getPointX() { return pointX; } public void setPointX(String pointX) { this.pointX = pointX; } public String getPointY() { return PointY; } public void setPointY(String pointY) { PointY = pointY; } public String getError() { return error; } public void setError(String error) { this.error = error; } public String getRadius() { return radius; } public void setRadius(String radius) { this.radius = radius; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } }
第二个为百度返回json的解析类,将获得的信息解析到基础类中进行保存。
package com.duduli.li; import org.json.JSONException; import org.json.JSONObject; public class JsonParse { public Addr parseJson(String json) throws JSONException{ Addr addrMsg = new Addr(); JSONObject jo = new JSONObject(json); // 解析json中的result值 String result = jo.getString("result"); JSONObject resultJO = new JSONObject(result); String time = resultJO.getString("time"); String error = resultJO.getString("error"); addrMsg.setTime(time); addrMsg.setError(error); // 解析json中的content值 String content = jo.getString("content"); JSONObject contentJO = new JSONObject(content); String point = contentJO.getString("point"); // 解析json中point数据 JSONObject pointJO = new JSONObject(point); String x = pointJO.getString("x"); String y = pointJO.getString("y"); addrMsg.setPointX(x); addrMsg.setPointY(y); String radius = contentJO.getString("radius"); addrMsg.setRadius(radius); // 解析json中add数据 String addr = contentJO.getString("addr"); JSONObject addrJO = new JSONObject(addr); String detail = addrJO.getString("detail"); addrMsg.setAddr(detail); return addrMsg; } }
第三个为layout的main.xml
<com.baidu.mapapi.MapView android:id="@+id/bmapsView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" />
最后是activity。可以显示地图和定位的。
package com.duduli.li; import org.json.JSONException; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Point; import android.os.Bundle; import com.baidu.location.LocServiceMode; import com.baidu.location.LocationChangedListener; import com.baidu.location.LocationClient; import com.baidu.location.ReceiveListener; import com.baidu.mapapi.BMapManager; import com.baidu.mapapi.GeoPoint; import com.baidu.mapapi.MapActivity; import com.baidu.mapapi.MapController; import com.baidu.mapapi.MapView; import com.baidu.mapapi.Overlay; public class BaiduMapTestActivity extends MapActivity { private LocationClient lc ; private BMapManager mBMapMan; private MapView mMapView; private double x; private double y; // private GeoPoint gp; @Override protected void onCreate(Bundle arg0) { // TODO Auto-generated method stub super.onCreate(arg0); setContentView(R.layout.main); mBMapMan = new BMapManager(getApplication()); mBMapMan.init("279B8BABF0AA0A98B33A494C9E310BBB10137789", null); super.initMapActivity(mBMapMan); lc = new LocationClient(this); lc.setCoorType("gcj02"); lc.setServiceMode(LocServiceMode.Background); lc.addLocationChangedlistener(new MyLocationChangedListener()); lc.addRecerveListener(new MyReceiveListenner()); lc.start(); try { Thread.sleep(3000); } catch (InterruptedException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } lc.getLocation(); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } public class MyLocationChangedListener implements LocationChangedListener { public void onLocationChanged() { //在此添加,位置改变触发的功能。 // tv.append(text) } } public class MyReceiveListenner implements ReceiveListener{ public void onReceive(String strData) { //在此处理 获取到的定位结果的json串。 try { JsonParse jp = new JsonParse(); Addr ad = jp.parseJson(strData); // x = getPoint(ad.getPointX());//114.105 // y = getPoint(ad.getPointY());//22.54 x = Double.valueOf(ad.getPointX()); y = Double.valueOf(ad.getPointY()); mMapView = (MapView) findViewById(R.id.bmapsView); mMapView.setBuiltInZoomControls(true); mMapView.getOverlays().add(new MyOverlay()); MapController mc = mMapView.getController(); GeoPoint gp = new GeoPoint((int)(y*1E6),(int)(x*1E6)); // GeoPoint gp = new GeoPoint((int)(22.54762429*1E6),(int)(114.1054699*1E6)); mc.setCenter(gp); mc.setZoom(12); mBMapMan.start(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* public int getPoint(String s){ String str = s.substring(0, s.indexOf("."))+s.substring(s.indexOf(".")+1, s.indexOf(".")+7); return Integer.valueOf(str); }*/ } public class MyOverlay extends Overlay { GeoPoint geoPoint = new GeoPoint((int)(y*1E6),(int)(x*1E6)); Paint paint = new Paint(); @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { Point point = mMapView.getProjection().toPixels(geoPoint, null); Bitmap bmp = BitmapFactory.decodeResource(getResources(),android.R.drawable.presence_online); canvas.drawBitmap(bmp,point.x, point.y,paint); canvas.drawText("你在这里", point.x, point.y, paint); } } }
最后还有权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
发表评论
-
【android】访问web service(大概功能版)
2012-10-30 08:36 1320增加功能: 1,用户点击次数过快。提示。 2,增加progre ... -
【android】web service访问
2012-10-26 10:20 1318android对web service的访问。使用ksoap2 ... -
【android】在2.3.3下面是用DDMS模拟位置会死机
2012-08-05 15:54 1010整了很久很久。每次都是死机。 调试也调试了很久,最后发现在2. ... -
【android】一个小问题让我纠结了很久
2012-03-20 09:43 1431之前处理cursor的方法:此方法是有问题的!!! pub ... -
【android】使用checkedTextView形成自定义ListView(续)
2012-03-15 10:06 4663前面的已经介绍了如何将check选中,但是很不尽如人意的是,每 ... -
【android】checkedTextView形成自定义ListView
2012-03-14 16:48 8748网络上的那个东西似乎都不准,以下是我做的此方法为可行。 首先, ... -
【android系统问题】呼叫状态变化
2012-03-09 14:09 1845测试。做一个Receiver监听手机通话状态。发现这样个问题。 ... -
【android】电话接听状态事件
2012-03-01 10:36 3291androidmanifest权限: <uses-per ... -
【android】自定义listView(转http://yilee.info/android-diy-listview.html)
2012-02-29 14:25 1585本文讲实现一个自定义列表的Android程序,程序将实现一个使 ... -
【android】 sqliter数据库CRUD
2012-02-27 16:16 1292基础类,DBHelper package com.duduli ... -
【android】以前没有注意的一个ListActivity的问题
2012-02-27 15:52 1331以前自己都很少使用ListActivity。今天使用的时候就出 ... -
【android】的startActivityForResult
2012-02-24 16:41 1180似乎这个做登录或是论坛回复很好的。 不用返回。 一下几点需要注 ... -
【android】widget生命周期
2012-02-23 17:07 3553在widget开发的时候生命周期如下: 第一次创建桌 ... -
【android】传感器
2011-12-03 10:41 987IBM develop 对android传感器的研究与开发。 ... -
【android】练手的小玩意
2011-11-30 16:17 1005这是个小程序,调用Google地图。显示你的大概位置。 当然不 ... -
【android】 百度地图应用开发(一)
2011-11-30 11:47 1713百度提供给我相当多的地图开发的api,比如地图,比如定位。 初 ... -
【android】利用service监听来电或来信息
2011-11-28 16:09 8032写这个东西只是为了练手,拍砖随意。反正自己也是菜鸟。 微信/Q ... -
【android地图】开发出现的问题。
2011-11-26 16:24 10692个问题,在虚拟机上没有这样的问题,但是到真机上实验的时候去出 ... -
android开发下的一些技术要点【如有需要会更新】
2011-11-14 15:36 37971,对于去title方法。在o ... -
android开发:Google天气获得气象信息
2011-11-07 16:21 1066这个只能算是半成品,之前想做一个wigdit的。可是没完成。 ...
相关推荐
android 通过百度API获得你的gps位置
利用百度地图api和定位api实现 在地图上显示自己的位置
在项目开发中经常遇到定位当前城市,并且得到城市名称的情况,网上关于百度定位例子太多,不过定位得到城市名字的却很少,我这个小例子,可以实现定位得到当前城市名称!直接拿出来用即可!
异步获得百度地图 详细地址 城市 省份 街道,已打包成jar包,直接调用即可,不过需要你到百度地图官网注册一个秘钥(ak),这是调用百度地图必须的。使用方法: 1.manifest下声明service: <service android:name=...
基于百度音乐Api的高仿音乐播放App可在线试听下载歌词浏览,框架搭建良好,代码封装性良好,多次获得省级大赛奖项,可以直接使用!
网上关于百度地图ADI对位的Demo很多,但是找一个定位到当前城市和得到城市名字却很少,很多项目中都有自动地位到当前城市显示城市名字的的功能,我也遇到需要此功能的需求,但是找了好久都没用,于是根据自己写了一...
为了能在手机随时查询交通线路,规划用户的出行,本文结合百度地图API(Application Programming Interface),开发基于Android平台采用Java语言和安卓自带的XML (Extensible Markup Language)布局编写的广州交通...
定位最好打开数据流量,可以快速定位,项目包括一个网络相关工具类有通过Get获取网页的二进制数据内容、通过Get获取字符串形式网页内容、判断网络是否可用等常用功能,本例子使用SAX解析百度车联网天气查询得到的xml...
虽然百度地图网上相关代码比较多,大多可能都是比较旧的版本,且百度地图API的改动感觉也比较大,所以再此跟大家分享一下实现的流程的和注意事项 一、申请密钥 重难点:获取Android签名证书的sha1值 方法一、使用...
程序含完整运行的app代码,数据库使用的是as自带的sqlite数据库,含有查词,翻译,学习等功能模块。其中视频以及资源使用url链接爬取获得的,并保存在云服务器中,通过百度api接口实现了句子段落的翻译功能。
根据百度文字识别 api 封装,能快速识别身份证信息,使用非常方便 好用的话大家可以 star,有好的建议也可以提出来哦 身份证自动识别已集成 使用 Step 1. 把 JitPack repository 添加到build.gradle文件中 ...
小学期选了app开发这个课题,看了《安卓应用开发教程》视频书籍,和优秀的组员们分工合作完成了该项目,...其中视频以及资源使用url链接爬取获得的,并保存在云服务器中,通过百度api接口实现了句子段落的翻译功能。
多语言支持:尽管OpenCV主要使用C++编写,但它提供了丰富的API绑定,支持包括C、Python、Java、MATLAB、JavaScript等多种编程语言,方便不同领域的开发者使用。 开源与免费:OpenCV遵循BSD开源许可证发布,用户...
1.在百度API中新建自己的一个APP包名和APP名需要注意和自己Android Studio 中的包名和APP名保持一致; 2.百度地图中还需要填写一个SHA1 数字签名: a、输入keytool -list -v -keystore debug.keystore,会得到三种...
基于百度地图 SDK 的多人地图 Android 客户端 项目简介 Android 手机客户端,基于百度地图 SDK 实现,本项目已实现如下功能: 本终端的实时定位、轨迹追踪及显示。 对其他用户实时定位,并可在地图上实时绘制被定位...
尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已...
Android天气预报,weatherForecast用百度地图提供的API,jsonp跨域请求获得一周的天气。 开发工具:AndroidStudio+SDK+JDK,
小学期选了app开发这个课题,看了《安卓应用开发教程》视频书籍,和优秀的组员们分工合作完成了该项目,...其中视频以及资源使用url链接爬取获得的,并保存在云服务器中,通过百度api接口实现了句子段落的翻译功能。
访问硬件的API库函数通讯接口 安卓android课程设计报告全文共5页,当前为第3页。HTTP 协议:有多种接口可以调用你可以用Java类库封装的HttpConnection 或者用Apach的开源项目的 HttpGet 或者HttpPost ,服务器端 ...
其中调用3个 API 接口,分别在注册模块与登录模块中实现微数据库API,在一言金句实现一言网API,在人脸识别中实现旷视API;更详细具体的内容在课程事迹说明书中可以学习查看。 适合人群:适合初学者,对App Inventor...