论坛首页 移动开发技术论坛

MapView的使用 之 最新帖

浏览 9120 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-21  

在论坛里看到一篇 "MapView和其它控件一起显示 " 的帖子, 那是很老的一篇帖子了, 很多朋友都说无法在android SDK 1.0上运行。既然那么多人关心,我在这里就把它重写一遍,顺便加入了一些新的功能 ,感兴趣的朋友可以看看。

第一步,当然是增加map的支持了。在Android Manifest.xml中增加以下语句:
<uses-library android:name="com.google.android.maps" />

第二步, 传说中的Layout:
<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <com.google.android.maps.MapView android:id="@+id/map"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:apiKey="Map_Demo"
                android:clickable="true" />

        <EditText android:layout_width="fill_parent"  
                  android:layout_height="wrap_content"  
                  android:text="输入查询地址"  
                  android:selectAll/>
</RelativeLayout>


然后, 创建一个MapViewActivity:
public class MapViewActivity extends MapActivity {  
    MapView mapView;
    MapController mapController;
    @Override  
    public void onCreate(Bundle icicle) {  
        super.onCreate(icicle);  
        setContentView(R.layout.main);

        mapView = (MapView) findViewById(R.id.map);
        mapController = mapView.getController();
        mapController.setZoom(15);
        updateView();
    }

    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }  


    private void updateView(){
         Double lat = 31.23717*1E6;
         Double lng = 121.50811*1E6;


         GeoPoint point = new GeoPoint(lat.intValue(), lng.intValue());
         mapController.setCenter(point);
    }
}


好了,你的MapView上面就多了一个EditText了。

接着,我希望在MapView中增加ZoomIn和ZoomOut的功能(鄙视一下Google ,缺省的MapView居然连这个功能都没有)
1. 在我们的Layout中增加一段:
        <LinearLayout android:id="@+id/zoom"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true" />


2. 在onCreate函数中增加:
        ViewGroup zoom=(ViewGroup)findViewById(R.id.zoom);
        zoom.addView(mapView.getZoomControls());



现在在你的地图中点一下,屏幕左下角,是不是出现了一个Zoom Table? 这才是一个最基本的地图功能嘛。

附件是相应的源代码,不想敲键盘的同志,也可以直接import这个代码。
MapView.rar (24.02 KB)



下一步,我打算在上面实现更多的功能,先准备实现一个“做标记”的功能,即可以在自己感兴趣的点上,插上
一面小红旗 ,往后准备再实现一个在MapView上面画一段路经的功能,等实现后,我将尽快的把代码贴上来。

论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics