android 地图标记,Android在地图上画标记

7.7.9 将View固定到地图和地图的某个位置上

在本章前面的部分中,已经学习了如何通过把Zoom

View固定到一个特定的屏幕位置上从而来添加它。可以把任何由View派生的对象固定到一个Map View(包括布局和其他的View

Group)上,既可以把它附加到一个屏幕位置,也可以把它附加到一个地理地图位置。

在第二种(地图位置)的情况中,View将会通过移动来跟随它在地图上被固定的位置,从而可以有效地当做一个交互的地图标记而使用。作为一个对资源更加敏感的方法,它通常被保留为可以提供细节的"气球",当在混合地图(mashup)中单击一个标记的时候,经常会通过显示它来提供更多的详细信息。

这两种固定机制都是通过对MapView调用addView而实现的,addView通常出现在MapActivity的onCreate或者onRestore方法中。需要给它传递你希望固定的View以及要使用的布局参数。

传递给addView的MapView.LayoutParams参数确定了如何将View添加到地图上,以及将其添加到地图的哪个位置。

要根据屏幕位置添加一个新的View,需要指定一个新的MapView.LayoutParams,它其中包含了用来设置View的高度和宽度的参数、x/y屏幕坐标以及用来确定位置的对齐方式(alignment),如下所示:

inty=10;

intx=10;

MapView.LayoutParams screenLP;

screenLP=newMapView.LayoutParams(MapView.

LayoutParams.WRAP_CONTENT,

MapView.

LayoutParams.WRAP_CONTENT,

x, y,

MapView.

LayoutParams.TOP_LEFT);

EditTexteditText1=newEditText

(getApplicationContext());

editText1.setText("Screen Pinned");

mapView.addView(editText1, screenLP);

要根据一个物理地图位置来固定一个View,需要在构建新的MapView.LayoutParams的时候传递4个参数,分别用来表示高度、宽度、要固定的GeoPoint和布局对齐方式。

Doublelat=37.422134*1E6;

Doublelng= -122.084069*1E6;

GeoPointgeoPoint=newGeoPoint(lat.intValue(), lng.intValue());

MapView.LayoutParams geoLP;

geoLP=newMapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT,

MapView.LayoutParams.WRAP_CONTENT,

geoPoint,

MapView.LayoutParams.TOP_LEFT);

EditTexteditText2=newEditText(getApplicationContext());

editText2.setText("Location Pinned");

mapView.addView(editText2, geoLP);

移动地图的时候第一个TextView将留在左上角不动,而第二个TextView将会通过移动,从而保持在地图上特定的位置不变。

要从一个MapView中移除一个View,可以调用RemoveView,并给它传递你希望移除的View实例,如下所示:

mapView.removeView(editText2);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值