- 浏览: 7330561 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 地图中添加marker 并添加事件
我有 osmdroid,overlayswithfocus,当我们单击在覆盖的标注或弹出窗口显示,但我需要它回到正常的叠加时我触摸其他叠加图。所以,我需要帮助请。和我的添加叠加的 for 循环调用此函数。
在osmdroid中添加marker并事件的实现。
在osmdroid 地图中添加marker 并添加事件
主要采用ItemizedOverlayWithFocus图层并添加
ItemizedIconOverlay.OnItemGestureListener事件监听实现
package com.geoserver.osmdroid; import java.util.ArrayList; import org.osmdroid.ResourceProxy; import org.osmdroid.DefaultResourceProxyImpl; import org.osmdroid.tileprovider.util.CloudmadeUtil; import org.osmdroid.util.GeoPoint; import org.osmdroid.views.MapView; import org.osmdroid.views.overlay.ItemizedIconOverlay; import org.osmdroid.views.overlay.ItemizedOverlayWithFocus; import org.osmdroid.views.overlay.MinimapOverlay; import org.osmdroid.views.overlay.OverlayItem; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.RelativeLayout; import android.widget.RelativeLayout.LayoutParams; import android.widget.Toast; /** * * 在osmdroid 地图中添加marker 并添加事件 * * 主要采用ItemizedOverlayWithFocus图层并添加 * ItemizedIconOverlay.OnItemGestureListener事件监听实现 * final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>(); items.add(new OverlayItem("Hannover", "Tiny SampleDescription", new GeoPoint(52370816, 9735936))); // Hannover items.add(new OverlayItem("Berlin", "This is a relatively short SampleDescription.", new GeoPoint(52518333, 13408333))); // Berlin items.add(new OverlayItem( "Washington", "This SampleDescription is a pretty long one. Almost as long as a the great wall in china.", new GeoPoint(38895000, -77036667))); // Washington items.add(new OverlayItem("San Francisco", "SampleDescription", new GeoPoint(37779300, -122419200))); // San Francisco this.mMyLocationOverlay = new ItemizedOverlayWithFocus<OverlayItem>( items, new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() { @Override public boolean onItemSingleTapUp(final int index, final OverlayItem item) { Toast.makeText( SampleWithMinimapItemizedoverlayWithFocus.this, "Item '" + item.mTitle + "' (index=" + index + ") got single tapped up", Toast.LENGTH_LONG).show(); return true; } @Override public boolean onItemLongPress(final int index, final OverlayItem item) { Toast.makeText( SampleWithMinimapItemizedoverlayWithFocus.this, "Item '" + item.mTitle + "' (index=" + index + ") got long pressed", Toast.LENGTH_LONG).show(); return false; } }, mResourceProxy); this.mMyLocationOverlay.setFocusItemsOnTap(true); this.mMyLocationOverlay.setFocusedItem(0); this.mOsmv.getOverlays().add(this.mMyLocationOverlay); * @Title: * @Description: 实现TODO * @Copyright:Copyright (c) 2011 * @Company: * @Date:2012-9-6 * @author longgangbai * @version 1.0 */ public class SampleWithMinimapItemizedoverlayWithFocus extends Activity { // =========================================================== // Constants // =========================================================== private static final int MENU_ZOOMIN_ID = Menu.FIRST; private static final int MENU_ZOOMOUT_ID = MENU_ZOOMIN_ID + 1; // =========================================================== // Fields // =========================================================== private MapView mOsmv; private ItemizedOverlayWithFocus<OverlayItem> mMyLocationOverlay; private ResourceProxy mResourceProxy; // =========================================================== // Constructors // =========================================================== /** Called when the activity is first created. */ @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext()); final RelativeLayout rl = new RelativeLayout(this); CloudmadeUtil.retrieveCloudmadeKey(getApplicationContext()); this.mOsmv = new MapView(this, 256); rl.addView(this.mOsmv, new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); /* Itemized Overlay */ { /* * Create a static ItemizedOverlay showing a some Markers on some * cities. */ final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>(); items.add(new OverlayItem("Hannover", "Tiny SampleDescription", new GeoPoint(52370816, 9735936))); // Hannover items.add(new OverlayItem("Berlin", "This is a relatively short SampleDescription.", new GeoPoint(52518333, 13408333))); // Berlin items.add(new OverlayItem( "Washington", "This SampleDescription is a pretty long one. Almost as long as a the great wall in china.", new GeoPoint(38895000, -77036667))); // Washington items.add(new OverlayItem("San Francisco", "SampleDescription", new GeoPoint(37779300, -122419200))); // San Francisco /* OnTapListener for the Markers, shows a simple Toast. */ this.mMyLocationOverlay = new ItemizedOverlayWithFocus<OverlayItem>( items, new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() { @Override public boolean onItemSingleTapUp(final int index, final OverlayItem item) { Toast.makeText( SampleWithMinimapItemizedoverlayWithFocus.this, "Item '" + item.mTitle + "' (index=" + index + ") got single tapped up", Toast.LENGTH_LONG).show(); return true; } @Override public boolean onItemLongPress(final int index, final OverlayItem item) { Toast.makeText( SampleWithMinimapItemizedoverlayWithFocus.this, "Item '" + item.mTitle + "' (index=" + index + ") got long pressed", Toast.LENGTH_LONG).show(); return false; } }, mResourceProxy); this.mMyLocationOverlay.setFocusItemsOnTap(true); this.mMyLocationOverlay.setFocusedItem(0); this.mOsmv.getOverlays().add(this.mMyLocationOverlay); } /* MiniMap */ { MinimapOverlay miniMapOverlay = new MinimapOverlay(this, mOsmv.getTileRequestCompleteHandler()); this.mOsmv.getOverlays().add(miniMapOverlay); } this.setContentView(rl); } @Override public boolean onCreateOptionsMenu(final Menu pMenu) { pMenu.add(0, MENU_ZOOMIN_ID, Menu.NONE, "ZoomIn"); pMenu.add(0, MENU_ZOOMOUT_ID, Menu.NONE, "ZoomOut"); return true; } @Override public boolean onMenuItemSelected(final int featureId, final MenuItem item) { switch (item.getItemId()) { case MENU_ZOOMIN_ID: this.mOsmv.getController().zoomIn(); return true; case MENU_ZOOMOUT_ID: this.mOsmv.getController().zoomOut(); return true; } return false; } }
发表评论
-
TestNG简单的学习(十三)TestNG中Junit的实现
2013-12-04 09:00 3352TestNG和junit的整合 ... -
TestNG简单的学习(十二)TestNG运行
2013-12-03 09:08 51574文档来自官方地址: ... -
TestNG简单的学习(十一)TestNG学习总结
2013-12-03 09:08 14174最近一直在学习关于TestNG方面的知识,根 ... -
TestNG简单的学习(十)TestNG @Listeners 的使用
2013-12-03 09:07 8687TestNG官方网站: http://testng.or ... -
TestNG简单的学习(九)TestNG Method Interceptors 的使用
2013-12-03 09:07 2709TestNG官方网站: http://testng ... -
TestNG简单的学习(八)TestNG Annotation Transformers 的使用
2013-12-03 09:07 2804TestNG官方网站: http://testng.or ... -
TestNG简单的学习(七)TestNG编程方式运行
2013-12-02 09:22 2448TestNG官方网站: http://testng.or ... -
TestNG简单的学习(六)测试工厂注释的使用
2013-12-02 09:22 2778TestNG官方网站: http://testng.or ... -
TestNG简单的学习(五)参数化测试数据的定制
2013-12-02 09:22 2697TestNG官方网站: http://testng.or ... -
TestNG简单的学习(四)测试方法通过名称名称依赖实现
2013-12-02 09:21 2078TestNG官方网站: http://testng.or ... -
TestNG简单的学习(三)测试方法通过测试分组依赖实现
2013-12-02 09:21 2825TestNG官方网站: http://testng.or ... -
TestNG简单的学习(二)参数化测试并发且多方法测试方法判定
2013-11-29 15:35 3694TestNG官方网站: http://testng.or ... -
TestNG简单的学习(一)类和方法级别@Test的区别
2013-11-29 15:31 9420TestNG官方文档的地址: http://testng ... -
Feed4Junit的简单使用(七)Feed4TestNg
2013-11-29 13:35 6128在Feed4Junit主要针对junit实现的 ... -
Feed4Junit的简单使用(六)数据来特定格式文件
2013-11-29 12:29 2763Feed4Junit官方地址: http://da ... -
Feed4Junit的简单使用(五)数据来自动态约束数据
2013-11-29 12:29 2624Feed4Junit官方地址: http://datab ... -
Feed4Junit的简单使用(四)数据来自定义数据源
2013-11-28 14:09 3095Feed4Junit官方地址: http://databe ... -
Feed4Junit的简单使用(三)数据源来自数据库
2013-11-28 13:58 3164Feed4Junit官方地址: http://databe ... -
Feed4Junit的简单使用(二)数据源来自文件
2013-11-28 13:50 4565Feed4Junit官方地址: http://datab ... -
Feed4Junit的简单使用(一)
2013-11-28 13:47 2207Feed4Junit官方地址: http://databe ...
相关推荐
通过LocationProvider,开发者可以获取到GPS或网络定位的数据,并在地图上显示定位图标。此外,还可以设置定位更新的频率和精度。 **7. 范例应用:OsmdroidDemo** 提供的"OsmdroidDemo"可能是一个演示osmdroid功能...
总结来说,"JavaScript添加marker并连线"的实例展示了如何利用SuperMap iClient 6R for JavaScript在地图上添加标记和绘制连接它们的线。这在展示地理空间数据、路径规划或网络分析等场景中非常有用。开发者可以根据...
然而,一旦添加了label(标记文字)并在地图上进行移动或缩放操作,label有时会消失,这无疑对用户的理解造成了困扰。本篇文章将详细讲解如何完美解决这个问题,并提供获取已聚合点位的接口方案。 首先,我们需要...
在开发基于地图的应用时,尤其是使用百度地图API时,可能会遇到一个常见的问题——当需要在地图上显示大量标记(marker)时,地图加载会变得卡顿,用户体验显著下降。这个问题通常由于JavaScript处理大量DOM元素导致...
如果你需要更复杂的文字显示,可以自定义`Marker`的子类,覆盖其`draw`方法,直接在地图上绘制文本。 2. **点符号化**: `Marker`是osmdroid中表示点的基本类,你可以通过设置`Marker`的图标来改变点的外观。图标...
"高德地图定位缩放比例尺添加marker的Demo"是一个很好的示例,它展示了如何在Android应用中集成高德地图,并实现一些核心功能,如用户定位、比例尺显示、Marker的添加以及自定义Marker和缩放操作。下面我们将详细...
在Android开发中,有时我们需要实现离线地图功能,以便用户在无网络环境下仍能查看地图。Osmdroid是一个开源库,专门用于在Android平台上显示OpenStreetMap(OSM)地图,支持离线地图数据的加载和操作。本教程将详细...
在Android开发中,百度地图API提供了丰富的功能,其中包括自定义Marker。Marker是地图上的一个标记,通常用于表示特定的位置或信息。本项目聚焦于在Android平台上如何利用百度地图SDK实现自定义Marker,以满足个性化...
综上所述,这个项目结合了前后端开发技术,通过百度地图API实现了在地图上展示多个地点、为每个地点添加信息窗口,并且在地点密集时采用点聚合优化显示效果。对于想学习或提升地图应用开发技能的开发者来说,这是一...
Marker在地图应用中通常用于表示特定地理位置的点,比如兴趣点、店铺位置或者用户当前位置等。然而,当一个区域内有大量Marker时,如果直接在地图上显示所有这些点,可能会导致地图变得混乱,难以阅读。为了解决这个...
本教程将深入探讨如何利用osmdroid库集成Google地图,解决地图显示为空白的问题,并实现基本的定位、自定义marker和画线功能。osmdroid是一个开源的Android地图库,它为开发者提供了灵活的方式来展示来自不同来源的...
在地图应用中,`marker`通常用来表示地图上的一个具体位置,它可以是简单的图标,也可以是自定义的图片。在高德地图API中,我们可以使用`AMap.Marker`类创建marker,并通过设置`icon`属性来自定义marker的图标。 接...
1. **初始化地图**:首先,你需要在XML布局文件中添加MapView,并在对应的Activity或Fragment中初始化高德地图API,获取Map对象。 2. **创建Marker**:根据需求,你可以创建一个或多个Marker,设置它们的初始位置。...
在开发Web应用时,地图组件常常扮演着重要角色,而百度地图API则为开发者提供了丰富的功能,包括在地图上添加标记(marker)。本教程将详细讲解如何利用百度地图API和CSS3来实现marker的动画效果。 首先,让我们...
在地图上添加Marker,你可以创建一个`LatLng`对象来表示位置,然后创建一个`OverlayOptions`对象,设置Marker的图标、位置等属性。最后通过`Map`对象的`addOverlay()`方法将其添加到地图上: ```java LatLng ...
5. **叠加层(Overlay)**:叠加层是百度地图API中用于在地图上添加自定义图形或图像的一类对象,如Polygon(多边形)、Polyline(线)等。它们可以用于绘制特定形状,或者覆盖地图的一部分,实现更丰富的地图展示...
在地图上,当大量标记(Marker)聚集在一个区域时,为了提高用户体验和视觉效果,我们会采用点聚合技术,将相近的标记合并为一个更大的图标,显示数量或代表类别。自定义点聚合Marker图片意味着我们可以根据自己的...
百度地图添加自定义marker 详见:http://www.cnblogs.com/wangfengdange/p/5640867.html
在这个例子中,我们将讨论如何利用OpenLayers将本地图片作为地图背景,并添加marker标记。 首先,为了将本地图片用作背景,我们需要创建一个OpenLayers的图层实例。这通常通过`ol.source.ImageStatic`类来实现。你...
为了在地图上添加Marker,我们需要使用`BaiduMap`对象的`addOverlay`方法,传入`OverlayOptions`对象来描述Marker的属性,如位置、图标、点击事件等。`OverlayOptions`可以通过`MarkerOptions`类进行构建,设置其...