技术开发 频道

使用Android Google Map开发LBS应用

  【IT168技术】在本系列的上一讲中,我们学习了google map 使用的一些简单步骤,其中学习到了如何注册google map api以及如何使用mapview控件。在本讲中,将学习如何根据若干指定的地理位置(给出了经纬度),并在地图上用指定的方法进行弹出显示其地理位置详细信息,其中用到了一个不错的第三方气球标识类库。

  步骤1 显示当前位置的信息

  在上一讲中,其实我们已经调用获得了用户的当前位置的信息,现在我们需要将其在页面的顶部显示出来,首先打开main.xml,然后添加如下的代码:

   <LinearLayout
    android:orientation
="horizontal"
    android:layout_width
="fill_parent"
    android:layout_height
="wrap_content"
    android:id
="@+id/infoLinearLayout"
    android:clickable
="true"
    android:onClick
="centerToCurrentLocation">
    
<TableLayout
        android:layout_width
="fill_parent"
        android:layout_height
="wrap_content"
        android:layout_marginTop
="30dp"
        android:background
="#97000000"
        android:padding
="7sp">
        
<TableRow>
            
<TextView
            android:layout_width
="fill_parent"
            android:layout_height
="wrap_content"
            android:layout_weight
="1"
            android:text
="@string/latitude"
            android:id
="@+id/latitudeText"
            android:textColor
="#FFFFFF">
            
</TextView>
            
<TextView
            android:layout_width
="fill_parent"
            android:layout_height
="wrap_content"
            android:layout_weight
="1"
            android:text
="@string/longitude"
            android:id
="@+id/longitudeText"
            android:textColor
="#FFFFFF">
            
</TextView>
        
</TableRow>
        
<TableRow>
            
<TextView
            android:layout_width
="fill_parent"
            android:layout_height
="wrap_content"
            android:layout_weight
="1"
            android:text
="@string/accuracy"
            android:id
="@+id/accuracyText"
            android:textColor
="#FFFFFF">
            
</TextView>
            
<TextView
            android:layout_width
="fill_parent"
            android:layout_height
="wrap_content"
            android:layout_weight
="1"
            android:text
="@string/provider"
            android:id
="@+id/providerText"
            android:textColor
="#FFFFFF">
            
</TextView>
        
</TableRow>
    
</TableLayout>
</LinearLayout>

  在上面的代码中,读者可能会注意到在LinearLayout中,使用了onclick事件,其中调用了centerToCurrentLocation这个方法,这其实为用户提供了方便,当用户在地图中导航时,如果要快速返回地图的中心点,只需要点一下地图的空白区域即可。

  在上面的代码中,我们还定义了很多文字的提示信息,这些要在strings.xml中进行定义,定义如下:

<string name="latitude">Latitude : </string>
<string name="longitude">Longitude : </string>
<string name="accuracy">Accuracy : </string>
<string name="provider">Provider : </string>

  现在,我们更新下程序,以在屏幕顶部显示当前位置的经纬度和地理位置提供者provider的信息,如下:

    ((TextView)findViewById(R.id.latitudeText)).setText("Latitude : " + String.valueOf((int)(currentLocation.getLatitude()*1E6)));
        ((TextView)findViewById(R.id.longitudeText)).setText(
"Longitude : " +  String.valueOf((int)(currentLocation.getLongitude()*1E6)));
        ((TextView)findViewById(R.id.accuracyText)).setText(
"Accuracy : " + String.valueOf(location.getAccuracy()) + " m");

  我们记得定义centerToCurrentLocation这个方法,该方法其实是调用了第一讲中的animateToCurrentLocation();方法,如下:

  public void centerToCurrentLocation(View view){

  animateToCurrentLocation();

  }

0
相关文章