- 浏览: 188350 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
Allen_J_Will:
...
python学习,第四天笔记 -
大头K:
qindongliang1922 写道你用的啥IDE工具楼主
...
python学习,第三天笔记 -
qindongliang1922:
你用的啥IDE工具楼主
python学习,第三天笔记 -
大头K:
hksfho 写道你好,怎樣顯不坐標?你说的是在地图上显示坐标 ...
基于百度地图实现的实时定位功能(含项目代码) -
hksfho:
你好,怎樣顯不坐標?
基于百度地图实现的实时定位功能(含项目代码)
之前听说百度地图有这么一个功能(在地图上选取位置),一直没时间去看看怎么实现,刚好手头上项目需要这个功能,下午抽个空看了一下,集成到项目当中。
先看效果图,这两张图片上的红点就是我点击的地方。当然,我既然可以在上面加个覆盖物,那这个点的坐标肯定可以得到的。
上代码:
代码不多,但是注意的地方还是有的,比如生命周期一定要加上,每次点击添加覆盖物的时候记得先把之前的清掉,还有,你造吗?每次一进入就看到天安们你TM在逗我吧!
先看效果图,这两张图片上的红点就是我点击的地方。当然,我既然可以在上面加个覆盖物,那这个点的坐标肯定可以得到的。

上代码:
/** * 在百度地图上选择点 * @author ck * @since 2014年2月23日 21:33:41 */ public class CopyOfSelectPointInMap extends Activity { // MapView 是地图主控件 private MapView mMapView = null; // 用MapController完成地图控制 private MapController mMapController = null; // 地图覆盖物 private MyOverlay mOverlay = null; // 装覆盖物 private ArrayList<MyOverlay> items; // MKMapViewListener 用于处理地图事件回调 MKMapViewListener mMapListener = null; // 用于截获屏坐标 MKMapTouchListener mapTouchListener = null; // 当前地点击点 private GeoPoint currentPt = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mapcontrol); initialize(); initializeViews(); initializeListeners(); } private void initialize() { MyApplication app = (MyApplication) this.getApplication(); if (app.mBMapManager == null) { app.mBMapManager = new BMapManager(getApplicationContext()); app.mBMapManager.init(MyApplication.strKey, new MyApplication.MyGeneralListener()); } items = new ArrayList<CopyOfSelectPointInMap.MyOverlay>(); }; private void initializeViews() { mMapView = (MapView) findViewById(R.id.bmapView); mMapController = mMapView.getController(); mMapController.enableClick(true); mMapController.setZoom(15); // 默认跳到天安们 double cLat = 39.945; double cLon = 116.404; GeoPoint p = new GeoPoint((int) (cLat * 1E6), (int) (cLon * 1E6)); mMapController.setCenter(p); }; private void initializeListeners() { /** * 设置地图点击事件监听 */ mapTouchListener = new MKMapTouchListener() { @Override public void onMapClick(GeoPoint point) { currentPt = point; updateMapState(); } @Override public void onMapDoubleClick(GeoPoint point) { } @Override public void onMapLongClick(GeoPoint point) { } }; mMapView.regMapTouchListner(mapTouchListener); }; // 更新地图的状态 private void updateMapState() { if (mOverlay == null) { // 创建自定义overlay mOverlay = new MyOverlay(getResources().getDrawable( R.drawable.line_end), mMapView); OverlayItem item1 = new OverlayItem(currentPt, "覆盖物1", ""); mOverlay.addItem(item1); items.add(mOverlay); mMapView.getOverlays().add(mOverlay); } else { mOverlay.removeAll(); OverlayItem item1 = new OverlayItem(currentPt, "覆盖物1", ""); mOverlay.addItem(item1); items.add(mOverlay); } mMapView.refresh(); } /** * 自定义覆盖物 */ public class MyOverlay extends ItemizedOverlay { public MyOverlay(Drawable defaultMarker, MapView mapView) { super(defaultMarker, mapView); } @Override public boolean onTap(int index) { return true; } @Override public boolean onTap(GeoPoint pt, MapView mMapView) { return false; } } @Override protected void onPause() { mMapView.onPause(); super.onPause(); } @Override protected void onResume() { mMapView.onResume(); super.onResume(); } @Override protected void onDestroy() { mMapView.destroy(); super.onDestroy(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mMapView.onSaveInstanceState(outState); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); mMapView.onRestoreInstanceState(savedInstanceState); } }
代码不多,但是注意的地方还是有的,比如生命周期一定要加上,每次点击添加覆盖物的时候记得先把之前的清掉,还有,你造吗?每次一进入就看到天安们你TM在逗我吧!
发表评论
-
android studio 编译问题
2015-08-12 17:58 7471、今天在用AS直接调试安装应用的时候,发现安装的debug应 ... -
BASE64加密解密
2014-08-19 17:59 0import java.io.ByteArrayOutputS ... -
在EditText和TextView显示表情图片(类似QQ表情)
2014-08-04 13:25 1673通过重写EditText和TextView,在EditText ... -
java修改目录所有文件名
2014-07-15 13:03 1921前言: 一直遇到一个问题,android在打包的时候,有时会涉 ... -
webview清除cookie
2014-07-14 15:54 4235前言: 由于项目需要,webview需要与app进行交互,其实 ... -
按正方形裁切图片和图片加边框
2014-06-07 09:13 19431.按正方形裁切图片: /** * 按正方形裁切图片 ... -
解决部分android手机照片被系统自动旋转
2014-05-21 14:13 1843使用某星手机有为应用的图库添加图片时,发现照片已被旋转,APP ... -
关于拍完照或者保存图片,无法在相册上显示问题
2014-05-05 17:43 955场景:拍完照或者保存图片到SDCard时,无法马上在相册上显示 ... -
Universal-Image-Loader 内存占用
2014-04-30 23:24 1567前言:之前项目一直使用Universal-Image-Load ... -
Fragment already added 解决方法
2014-04-22 11:22 13212最近项目上遇到一个问题: 找了很久,尼玛终于找到方法解决 ... -
非官方调用新浪微博
2014-04-18 09:19 1927很多情况,我们都需要用户关注我们的官方微博,现在提供两种办法展 ... -
类似上下滚动切换广告牌效果实现
2014-04-18 06:39 0看到需求时,上下滚动切换,第一反应就是VerticalView ... -
关于刷新自定义View
2014-04-18 06:34 837因为项目需要,需要在自定义View可见之后再动态变化宽度。 ... -
保存网络图片到手机上
2014-04-16 12:00 971// 保存图片到手机端 public static bool ... -
ListView快速定位第一行
2014-04-15 16:23 1068if (Build.VERSION.SDK_INT < ... -
调用手机相机实现拍照、剪裁、保存图片到手机(含github源码地址)
2014-03-20 16:31 5996调用手机相机实现拍照、剪裁图片、并保存图片到手机 先看效果图 ... -
FragmentTabHost切换Fragment时避免UI重新加载
2014-03-12 14:27 4559用FragmentTabHost + Fragment 可以实 ... -
Gridview 去掉橙色点击响应效果
2014-03-12 11:19 965一行代码搞定: gridView.setSelector(ne ... -
如何在service里面弹出对话框
2014-03-10 00:03 3228先给一个需求:需要在service里面监听短信的接收,如果接收 ... -
ViewFlipper 3D旋转动画实现 界面切换
2014-03-08 00:46 1730先来看看效果: 简单介绍一下,两个界面,以水平中线旋转18 ...
相关推荐
综上所述,百度地图API为开发者提供了强大的工具,使我们可以轻松地在地图上添加个性化元素,如覆盖物,以及显示用户的位置。通过不断学习和实践,你可以创建出更加交互和生动的地图应用。如果你对某个部分还有疑问...
1. **坐标点**:每个覆盖物都需要一个地理位置坐标来确定其在地图上的位置。在百度地图API中,坐标通常是LatLng对象,包含经度和纬度。 2. **文字内容**:覆盖物显示的文字信息,可以是地点名称、描述或其他相关...
覆盖物是百度地图API中的一个重要元素,它允许用户在地图上添加自定义的图形元素,如图标、文字、图片或者自定义形状。这些元素可以用来标记特定位置、展示数据信息或者增强地图的视觉效果。例如,你可以用覆盖物来...
本代码的功能为:实现在地图上任意新建无限个可拖拽编辑的多边形覆盖物,同时为了方便与后台传递多边形的路径点参数,在新建多边形覆盖物的同时新建input元素。同时本代码实例补充了百度地图API功能,实现在多边形...
本话题聚焦于如何使用百度地图API来绘制多边形几何图形,并将这些图形的坐标保存,以便后续转化为地图上的覆盖物。下面将详细阐述这一过程。 首先,我们要了解百度地图API的核心功能。百度地图API提供了丰富的地图...
总之,通过百度地图API的自定义覆盖物功能,我们可以自由地在地图上添加各种视觉元素,如水波纹或雷达效果,以满足特定的应用需求。理解并掌握这个过程,不仅可以提升地图应用的互动性和吸引力,还能锻炼我们的编程...
7. **区域全覆盖功能**:如果需要在地图上显示一个自定义的区域,可以使用多边形覆盖物(`Polygon`)。通过设定一系列坐标点,可以绘制出任意形状的区域。同时,也可以为这个多边形添加点击事件,实现点击后的交互...
百度在线地图,绘制圆形覆盖物且可进行编辑,实现收缩并实时显示半径
首先,覆盖物是百度地图API中的一个重要概念,它允许开发者在地图上添加自定义的图形元素,如标记(Marker)、多边形、圆形等,以实现个性化地图展示。在V3.6.0版本中,创建覆盖物通常需要以下步骤: 1. 引入百度...
4. **在地图上显示布局(RelativeLayout)**:如果你希望在地图上显示一个`RelativeLayout`或者其他布局,你可以将这个布局作为覆盖物添加到地图上。首先,将布局转换为位图,然后创建一个`BitmapDescriptor`对象,...
自定义标注覆盖物(Custom Overlay)是百度地图中的一种功能,它允许开发者在地图上绘制自定义的标记物,以更符合自己的业务需求和设计风格。通过自定义标注覆盖物,你可以在地图上添加各种类型的标记,如图标、文字...
自己做的一个综合实例,包括自定义覆盖物 地图单击弹窗 提示信息等功能 。唯一遗憾的是没有实现标注物聚合。这里给出网址大家可以自己研究下http://my.eoe.cn/imesong/archive/21397.html
安卓天地图(标绘,测量,显示覆盖物,气泡弹窗,arcgis)示例安卓天地图(标绘,测量,显示覆盖物,气泡弹窗,arcgis)示例安卓天地图(标绘,测量,显示覆盖物,气泡弹窗,arcgis)示例安卓天地图(标绘,测量,...
开发者可以调用其`getCurrentPosition`方法来请求用户的当前位置,并通过回调函数处理返回的结果,展示在地图上。 其次,“覆盖物”是百度地图上的一个重要概念,它指的是地图上的点、线、面等可视化元素。例如,你...
首先,地图覆盖物(Marker)是在地图上展示的一种图形元素,可以用来表示特定的位置或者信息。例如,我们可以用覆盖物表示商店、公交站等地点。创建覆盖物通常涉及以下几个步骤: 1. 引入百度地图SDK:在Android...
在地图应用中,几何覆盖物是指在地图上以特定图形表示的地理位置或区域。通过使用百度地图API,我们可以动态地在地图上添加这些几何对象,以显示兴趣点、路径或者特定区域的边界。 1. **点覆盖物**: 在百度地图...
具体的应用场景简而言之就是需要我们在地图上添加如图中所示的自定义覆盖物。实现的过程作者分为以下两点给大家介绍介绍。 水波紋的实现 自定义覆盖物的实现 水波紋的实现 这个需求的实现肯定是离不开我们自己写...
覆盖物是在地图上显示自定义图形元素的重要方式,如图标、标注、热力图等。在百度地图API中,`MapView`类是地图的主要展示容器,而`Overlay`和`OverlayOptions`则是处理覆盖物的基础类。`Overlay`负责在地图上绘制和...
在地图服务中,覆盖物通常指的是在地图图像之上显示的任何自定义元素,如图标、标注、图形或动态数据。它们可以用来表示地点、事件、路线或其他具有地理位置信息的数据。Map覆盖物的添加使得开发者能够个性化地图,...
"百度地图覆盖物"这一主题主要涉及如何在百度地图上添加个性化图标、文本或者自定义图形,以展示特定位置的信息或者进行视觉上的标识。这些覆盖物可以是标记(Marker)、信息窗口(InfoWindow)或者其他自定义形状,...