- 浏览: 7338836 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
GIS的学习(三十九)针对osmdroid的扩展之MyLocationOverlay
在许多用地图应用中,在地图第一次加载的时候,可能将用户当前的位置定位的地图的中心,有时候可能有一个定位的功能,那么当点击点位的时候,需要地图的以当前用户所在位置为中心那么就需要重写MyLocationOverlay类实现相关的功能。
针对MyLocationOverlay的重写如下:
package com.etrip.osmdroid; import org.osmdroid.util.GeoPoint; import org.osmdroid.views.MapController; import org.osmdroid.views.MapView; import org.osmdroid.views.overlay.MyLocationOverlay; import com.etrip.osmdroid.R; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Point; import android.location.Location; /** * 重写的目的是在于 * 1.让当前的位置位于地图的中心位置 * * * 原文: * http://stackoverflow.com/questions/4175432/mylocationoverlay-change-the-marker * * 如果想改变当前位置的图标和标记颜色,可以采用以下两种方式实现: * Step #1: Create a subclass of MyLocationOverlay. * Step #2: Override drawMyLocation() * * * * */ public class CurrentLocationOverlay extends MyLocationOverlay { private final static int PADDING_ACTIVE_ZOOM = 50; private MapController mc; private Bitmap marker; private Point currentPoint = new Point(); private boolean centerOnCurrentLocation = true; private int height; private int width; /** * By default this CurrentLocationOverlay will center on the current location, * if the currentLocation is near the * edge, or off the screen. To dynamically enable/disable this, * use {@link #setCenterOnCurrentLocation(boolean)}. * @param context * @param mapView */ public CurrentLocationOverlay(Context context, MapView mapView) { super(context, mapView); this.mc = mapView.getController(); this.marker = BitmapFactory.decodeResource(context.getResources(), R.drawable.marker_default); } protected void drawMyLocation(Canvas canvas, MapView mapView, Location lastFix, GeoPoint myLocation, long when) { if (this.height == 0) { this.height = mapView.getHeight(); this.width = mapView.getWidth(); } mapView.getProjection().toPixels(myLocation, currentPoint); canvas.drawBitmap(marker, currentPoint.x, currentPoint.y - 40, null); } @Override public synchronized void onLocationChanged(Location location) { super.onLocationChanged(location); // only move to new position if enabled and we are in an border-area if (mc != null && centerOnCurrentLocation && inZoomActiveArea(currentPoint)) { mc.animateTo(getMyLocation()); setCenterOnCurrentLocation(true); } } private boolean inZoomActiveArea(Point currentPoint) { if ((currentPoint.x > PADDING_ACTIVE_ZOOM && currentPoint.x < width - PADDING_ACTIVE_ZOOM) && (currentPoint.y > PADDING_ACTIVE_ZOOM && currentPoint.y < height - PADDING_ACTIVE_ZOOM)) { return false; } return true; } public void setCenterOnCurrentLocation(boolean centerOnCurrentLocation) { this.centerOnCurrentLocation = centerOnCurrentLocation; } }
测试代码如下:
package com.etrip.osmdroid;
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapController;
import org.osmdroid.views.MapView;
import android.app.Activity;
import android.os.Bundle;
/**
*
*
*
* @author longgangbai
*/
public class MainActivity extends Activity {
private MapController mapController;
private MapView mapView;
/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.map);
mapView.setTileSource(TileSourceFactory.MAPNIK);
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
mapController.setZoom(8);
CurrentLocationOverlay locationOverlay=new CurrentLocationOverlay(this,mapView);
locationOverlay.enableCompass();
locationOverlay.enableFollowLocation();
locationOverlay.enableMyLocation();
//GeoPoint geopoint=new GeoPoint(39.92605, 116.42616);
// mapController.setCenter(locationOverlay.getMyLocation());
mapView.getOverlays().add(locationOverlay);
}
}
发表评论
-
TestNG简单的学习(十三)TestNG中Junit的实现
2013-12-04 09:00 3355TestNG和junit的整合 ... -
TestNG简单的学习(十二)TestNG运行
2013-12-03 09:08 51587文档来自官方地址: ... -
TestNG简单的学习(十一)TestNG学习总结
2013-12-03 09:08 14198最近一直在学习关于TestNG方面的知识,根 ... -
TestNG简单的学习(十)TestNG @Listeners 的使用
2013-12-03 09:07 8694TestNG官方网站: http://testng.or ... -
TestNG简单的学习(九)TestNG Method Interceptors 的使用
2013-12-03 09:07 2714TestNG官方网站: http://testng ... -
TestNG简单的学习(八)TestNG Annotation Transformers 的使用
2013-12-03 09:07 2810TestNG官方网站: http://testng.or ... -
TestNG简单的学习(七)TestNG编程方式运行
2013-12-02 09:22 2454TestNG官方网站: http://testng.or ... -
TestNG简单的学习(六)测试工厂注释的使用
2013-12-02 09:22 2784TestNG官方网站: http://testng.or ... -
TestNG简单的学习(五)参数化测试数据的定制
2013-12-02 09:22 2702TestNG官方网站: http://testng.or ... -
TestNG简单的学习(四)测试方法通过名称名称依赖实现
2013-12-02 09:21 2082TestNG官方网站: http://testng.or ... -
TestNG简单的学习(三)测试方法通过测试分组依赖实现
2013-12-02 09:21 2830TestNG官方网站: http://testng.or ... -
TestNG简单的学习(二)参数化测试并发且多方法测试方法判定
2013-11-29 15:35 3702TestNG官方网站: http://testng.or ... -
TestNG简单的学习(一)类和方法级别@Test的区别
2013-11-29 15:31 9425TestNG官方文档的地址: http://testng ... -
Feed4Junit的简单使用(七)Feed4TestNg
2013-11-29 13:35 6133在Feed4Junit主要针对junit实现的 ... -
Feed4Junit的简单使用(六)数据来特定格式文件
2013-11-29 12:29 2767Feed4Junit官方地址: http://da ... -
Feed4Junit的简单使用(五)数据来自动态约束数据
2013-11-29 12:29 2631Feed4Junit官方地址: http://datab ... -
Feed4Junit的简单使用(四)数据来自定义数据源
2013-11-28 14:09 3103Feed4Junit官方地址: http://databe ... -
Feed4Junit的简单使用(三)数据源来自数据库
2013-11-28 13:58 3170Feed4Junit官方地址: http://databe ... -
Feed4Junit的简单使用(二)数据源来自文件
2013-11-28 13:50 4571Feed4Junit官方地址: http://datab ... -
Feed4Junit的简单使用(一)
2013-11-28 13:47 2215Feed4Junit官方地址: http://databe ...
相关推荐
Android 百度地图开发(二)--- 定位功能之MyLocationOverlay,PopupOverlay的使用,项目详情http://blog.csdn.net/xiaanming/article/details/11380619
第三十九章 取得現在位置(GPS/基地台三角定位) 第四十章 結合地圖與定位功能(MyLocationOverlay) 第四十一章 為地圖標上地標(ItemizedOverlay) 附錄A 後記 附錄B如何取得範例原始碼 这个是他BLOG的电子版,如...
以下是对Android地图和定位学习的详细总结。 首先,Android的定位功能主要依赖于`LocationManager`类,它是系统服务`Context.LOCATION_SERVICE`的一部分。`LocationManager`提供了与各种位置提供者(如GPS和网络...
在本文中,我们将深入探讨Android地图和定位学习的一些核心知识点。 首先,Android的定位服务主要依赖于`android.location`包。该包包含了几个关键的接口和类,例如`GpsStatus.Listener`用于监听GPS的状态变化,`...
MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView); myLocationOverlay.addItem(overlayItem); mapView.getOverlays().add(myLocationOverlay); ``` 为了实现范围内的标注,我们需要...
总结,"搜狗地图API_Demo"是学习和实践搜狗地图API的理想资源。通过上述各个组件的运用,开发者不仅可以创建具有三维视图的地图应用,还能实现精确的定位服务、高效的地图搜索、丰富的标注展示以及交互式的信息窗口...
(四)地图定位和我的位置图层MyLocationOverlay 9 (五)自定义图层ItemizedOverlay和在地图上增加标注 10 (六)增加点击标注弹出气泡(显示标注信息)的功能 12 (七)增加POI搜索功能 15 三、百度地图的信息推送 ...
这个demo旨在帮助开发者了解和学习如何使用百度地图SDK进行位置服务的开发。 【描述】:百度地图定位demo包含了完整的源代码,演示了如何获取用户的实时位置、设置定位模式(如高精度、节约电量等)、显示定位信息...
- **自身定位**:借助百度地图API中的MyLocationOverlay类实现定位功能,并定时向服务器发送用户位置信息,以便更新服务器上的位置记录,同时也用于其他用户获取。 - **附近用户显示**:客户端向服务器发送请求...
#### 第九部分:API的MyLocationOverlay需要添加什么权限 为了使`MyLocationOverlay`功能正常工作,需要在AndroidManifest.xml中添加以下权限: ```xml ``` #### 第十部分:如何使用实时路况 使用实时路况功能...
#### 三、修改AndroidManifest.xml 为了使应用能够访问位置信息并使用Google Maps API,需要在`AndroidManifest.xml`文件中添加相应的权限声明: ```xml ``` #### 四、布局文件配置 接下来,在布局文件(如...
在Android开发中,实现GPS定位服务是移动应用中常见的需求,尤其对于地理位置相关的应用来说至关重要。...通过不断学习和实践,开发者可以更好地掌握这些技能,为用户提供更加精准和便捷的地理位置服务。
本文将深入探讨“百度地图Demo”的核心功能和实现原理,主要针对Android平台进行讲解。 首先,我们要理解“百度地图Demo”是百度地图SDK提供的一款示例程序,它包含了百度地图API的各种基本和高级功能的实例,帮助...
由于现有的手机应用程序的开发是构建在各手机厂家的私有操作系统之上的,所以它限制了第三方应用程序的开发,而Android为我们提供了一个开放和通用的选择。因为没有了人为制造的障碍,所以Android开发人员可以自由地...
* Work with TabActivity, MyLocationOverlay, DDMS, and more * Utilize the distinctive capabilities of the Android engine including maps, Internet access, integrated search, media playback, and more ...
百度地图Android平台开发指南是一份专门针对Android开发者的详细文档,旨在指导开发者如何在Android平台上利用百度地图API开发出功能丰富的地图应用程序。文档内容涵盖了从基础的应用设置到地图功能实现的各个阶段,...
在Android应用开发中,集成地图服务是常见的需求之一,尤其是实现定位功能。本教程将详细介绍如何利用百度地图API在Android应用程序中实现精准的定位服务。首先,我们需要了解百度地图API的基本概念及其在Android中...