`

Android GoogleMap Overlay (图层标记)

阅读更多
写一个类继承ItemizedOverlay
package cn.fn;

import java.util.ArrayList;
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

public class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem> {

private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>();
private Context context;

public CustomItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
}

public CustomItemizedOverlay(Drawable defaultMarker, Context context) {
this(defaultMarker);
this.context = context;
}

@Override
protected OverlayItem createItem(int i) {
return mapOverlays.get(i);
}

@Override
public int size() {
return mapOverlays.size();
}

@Override
protected boolean onTap(int index) {
OverlayItem item = mapOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}

public void addOverlay(OverlayItem overlayItem) {
mapOverlays.add(overlayItem);
this.populate();
}

}


MainActivity  取MapView 进行设置

package cn.fn;

import java.util.List;

import android.graphics.drawable.Drawable;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;


public class TextActivity extends MapActivity {
   
    private MapView mapView;

    private static final int lat1 = 39984881;
    private static final int lon1 = 116337044;

    private static final int lat2 = 39977293;
    private static final int lon2 = 116353089;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
       
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        mapView = (MapView) findViewById(R.id.myMapView); 
        mapView.setStreetView(true);
        mapView.setTraffic(true);
        mapView.setBuiltInZoomControls(true);
       
        List<Overlay> mapOverlays = mapView.getOverlays();
        Drawable drawable = this.getResources().getDrawable(R.drawable.hua);
        CustomItemizedOverlay itemizedOverlay = new CustomItemizedOverlay(drawable, this);
       
        itemizedOverlay.addOverlay(new OverlayItem(new GeoPoint(lat1, lon1), "HaHa", "HaHa"));
        itemizedOverlay.addOverlay(new OverlayItem(new GeoPoint(lat2, lon2), "HaHa", "HaHa"));
        mapOverlays.add(itemizedOverlay);
       
        MapController mapController = mapView.getController();
        //定位到显示的位置
        mapController.animateTo(new GeoPoint(locallat, locallon));
        mapController.setZoom(15);
       
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
   
}



提示:这个现在还有一个问题就是加太多的话就会
分享到:
评论

相关推荐

    Android google map自定义图层

    在Android开发中,Google Maps API 是一个非常强大的工具,它允许开发者将地图集成到应用程序中,提供导航、定位、标记等功能。本篇我们将探讨如何在Android应用中实现自定义图层,具体是通过`CustomItemizedOverlay...

    android地图使用overlay添加标记

    本教程将聚焦于如何利用`Overlay`类在Google地图上添加标记,这将帮助我们为用户提供直观的位置指示或者信息展示。`Overlay`是Android SDK中用于在地图上绘制图形或文本的对象,它允许我们在地图上添加自定义的图标...

    轨迹记录 android google map 应用

    "android"标签表明了这是关于Android平台的开发内容,而"googleMap"则指明了主要涉及Google Maps服务。在Android应用中集成Google Maps,开发者需要在Google Cloud Console创建项目,获取API密钥,然后在...

    googlemap谷歌地图标记拖动选择多选

    本篇将详细探讨"googlemap谷歌地图标记拖动选择多选"这一主题,以及如何利用Google Maps API实现这一功能。 首先,我们要理解"标记(Marker)"在谷歌地图中的概念。标记是Google Maps API中用于在地图上显示特定...

    googlemap 添加标记 并有气泡效果

    public void onMapReady(GoogleMap googleMap) { GoogleMap map = googleMap; // 设置地图类型、缩放级别等 } }); ``` 要添加标记,我们可以使用`MarkerOptions`对象。例如,要在地图中心添加一个标记: ```...

    Android google Map地图学习

    此资料包含 Android学习笔记 - 地图.doc 通过地名获得经纬度并标识在地图上.doc 点中overlay弹出带尾巴的气泡的实现.doc ...android map.doc Android地图和定位学习总结 .doc 希望对大家有帮助。。。。

    [zip文件] Android Google Map 源码_轨迹回放 优化版本

    最新版本的Android Google Map 轨迹回放源码, 可以用Google Map实现gps动态导航的功能. 参看博客地址:http://blog.csdn.net/ostrichmyself/article/details/6821112, 修正两个问题: 1. 不能重复播放 2. 拖动才能...

    Android-Google-Map-APi.doc.zip_android_google map android

    **Android谷歌地图API** 在Android应用开发中,Google Maps API是一个至关重要的组件,它允许开发者在应用程序中集成谷歌地图的功能,提供丰富的地理位置服务。本文档将深入探讨Android Map API v1,这一版本虽然已...

    android写的google map api 应用

    5. **添加标记和覆盖物**:通过`GoogleMap`对象,可以添加自定义的标记(Marker)或者覆盖物(Overlay)到地图上,展示特定的位置信息或提供交互功能: ```java MarkerOptions markerOptions = new MarkerOptions...

    google map api开发源代码

    开发者可以通过调用API提供的各种方法和事件来实现自定义的功能,如添加标记、信息窗口、覆盖图层等。 源代码中可能包含了以下关键知识点: 1. **初始化地图**:在网页中加载地图首先要进行初始化,设置地图的中心...

    React-GoogleMap:在ReactJS中使用Google Map的演示

    GoogleMap组件是地图的基础,Marker则用于在地图上显示标记。`withGoogleMap`和`withScriptjs`是高阶组件,用于处理Google Maps API的加载和错误处理。 接下来,我们需要设置一个Google Maps API密钥,这可以从...

    谷歌地图Google Map API V3中文开发文档

    谷歌地图 Google Map API V3 中提供了多种图层,例如自行车图层、FusionTables 图层、KML 图层等。开发者可以使用这些图层来在地图上显示不同的信息。 十一、街景视图 街景视图是谷歌地图 Google Map API V3 中的...

    百度地图android sdk拖拽overlay item

    在百度地图Android SDK中,Overlay Item通常表示地图上的一个特定标记或图标,例如用户的位置、兴趣点等。拖拽功能允许用户通过手指操作移动这些标记,这在需要动态调整位置或进行交互式操作的场景下非常有用。 ...

    google map开发经验分享

    总之,Android上的Google Map开发涉及到地图基础设置、自定义图层的创建和基站定位技术的运用。理解并掌握这些知识点,能帮助开发者构建功能丰富的地理位置应用,提供更好的用户体验。在实践中,不断优化和调整,...

    Android 高德地图自定义点聚合marker图片及Overlay点击选中功能

    在地图上,当大量标记(Marker)聚集在一个区域时,为了提高用户体验和视觉效果,我们会采用点聚合技术,将相近的标记合并为一个更大的图标,显示数量或代表类别。自定义点聚合Marker图片意味着我们可以根据自己的...

    Android 高德地图图层效果源码.zip

    - 地图图层管理:高德地图允许开发者添加自定义图层,例如叠加覆盖物(Overlay)来显示阴影效果。这可能涉及`MapView`的`addOverlay`方法。 - 数据获取:若提示信息需要从服务器获取,开发者需要实现网络请求,如...

    google map jsv3 示例

    5. **覆盖物(Overlay)**:除了标记,jsv3还支持自定义覆盖物,例如多边形、圆圈、热力图等,这些可以帮助展示更复杂的地理信息。 6. **路径(Polyline/Polygon)**:对于需要描绘路线或区域的应用,可以使用`...

    Google map

    除了基本的定位和标记,Google地图API还提供了许多高级功能,如覆盖物(Overlay)用于创建多边形、线段等;地理编码API用于地址的解析和反解析;以及距离矩阵API,用于计算多个位置之间的行驶距离和时间。 在实际...

Global site tag (gtag.js) - Google Analytics