我正在开发一个需要处理mapview的android应用程序。我基本上需要做的是在屏幕中央放置一个PIN,它将使用相对布局覆盖在mapview上。用户可以根据自己的意愿移动地图。移动地图并定位PIN后,我需要从该位置获得协调(lat和lng)。
它基本上类似于用户可以请求出租车的应用程序。 UberCab
第三段说:“例如,正如公司博客文章中所解释的,当您订购汽车时,您可以通过移动”静止图钉下的地图并[使用]整个地图来设置拾取位置准确设置您的位置.Android应用上的信息面板具有干净的透明度,可让您专注于地图以及您前往的位置。“
我的布局将是这样的:
<RelativeLayout android:id="@+id/mapviewContainer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/tvCurrentAddress">
<ImageView android:id="@+id/pin_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pin_red"
android:layout_centerInParent="true" />
<com.google.android.maps.MapView android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="@string/mapKey" />
</RelativeLayout>
我想实现同样的目标。有谁知道如何实现这个目标?
感谢您的关注
Ť
答案 0 :(得分:1)
你不会使用RelativeLayout。使用Overlay或更常见的ItemizedOverlay绘制链接到地理坐标的MapView上的引脚和基本上任何东西。
虽然回答你的主要问题。您可以通过类似于以下的系统将坐标转换为像素坐标:
GeoPoint location;
-- get the location someway like through the onTap method --
Point screenPoint = new Point();
mapView.getProjection().toPixels(location, screenPoint);
现在screenPoint将拥有GeoPoint的像素坐标。