无法在Android应用中的MapFragment上显示多边形

时间:2013-07-11 10:54:06

标签: android google-maps

我试图在MapFragment上绘制一个简单的多边形,但无法让它渲染。我正在使用developer docs中的代码示例,但无济于事。我是新手,所以我必须错过一些非常明显的东西,但我无法弄清楚它是什么。我没有遇到任何运行时错误。

以下是我主要活动的相关内容。

public class UserLocation<MainActivity> extends Activity  {

blah blah...

//Set up initial map fragment view
    map = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();

    LatLng startPoint = new LatLng(-30.89,24.26);



    //See use of CameraPosition.Builder here which gives a cool perspective view on the map. See use of map.animateCamera using this method too;
    CameraPosition cameraPosition = new CameraPosition.Builder().target(startPoint).tilt(60).zoom(6).bearing(0).
            build();
    map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));


    //try add polgyon

    List<LatLng> points = Arrays.asList(new LatLng(18.39416, -33.97885),
            new LatLng(18.45116, -33.97885), 
            new LatLng(18.45116, -33.91077), 
            new LatLng(18.39416, -33.91077), 
            new LatLng(18.39416, -33.97885));

    PolygonOptions options = new PolygonOptions();
    options.addAll(points);
    options.fillColor(Color.RED);
    map.addPolygon(options);

xml文件

  

  <TextView
      android:id="@+id/header"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/hello_world" />


  <fragment
      android:id="@+id/map"
      class="com.google.android.gms.maps.MapFragment"
      android:layout_width="match_parent"
      android:layout_height="match_parent"

      />
              <ImageButton
    android:id="@+id/mainNavigationButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:layout_marginLeft="120dp"
    android:onClick="OnClick_launch_mainNavigation"
    android:alpha="0.8"
    android:src="@drawable/copbutton"/>




<Spinner
      android:id="@+id/spinner1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginTop="17dp"
      android:entries="@array/crime_arrays"
      android:prompt="@string/crime_prompt" />


              </FrameLayout>

文件表明这是一个简单的过程,但我很难过。提前感谢任何建议。

1 个答案:

答案 0 :(得分:0)

您的代码应该有效。可能是,您意外地切换经度/纬度,因为您正在绘制多边形(24.26,-30.89)但将相机移动到(-30.89,24.26)。

要确保您在正确的区域,请创建一个调用

的按钮
 private function onButtonClick(){
    LatLng startPoint = new LatLng(24.26,-30.89);
   CameraPosition cameraPosition = new CameraPosition.Builder().target(startPoint).tilt(60).zoom(6).bearing(0).
        build();
   map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
 }