不工作的情节多个标记getOverlay()。add(classobject)不接受

时间:2015-03-03 08:13:48

标签: android google-maps google-maps-markers android-mapview

这是我的代码我想在谷歌地图中绘制多个标记 当我写mapview.getoverlay()。添加(overlaymarker)它不起作用 我不使用MapActivity我使用片段所以这是不支持getoverlays()请帮助我.......

fragmnt1.java

public class one extends Fragment implements LocationListener {
MapView mapView;
GoogleMap googleMap;
private boolean mapsSupported = true;
Location location;
double latitude; // latitude
double longitude;
LatLng latlang;
LocationManager manager;
Overlay_Marker overmarker;
frag provider;
 private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters
    private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; // 1 minute

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        final RelativeLayout parent = (RelativeLayout) inflater.inflate(R.layout.one, container, false);
        mapView = (MapView) parent.findViewById(R.id.map);
        provider=new frag(getActivity());
        Log.d("spn", "oncreate view");
        return parent;

    }
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        MapsInitializer.initialize(getActivity());
    } catch (Exception ex) {
        mapsSupported = false;
    }

    if (mapView != null) {
        mapView.onCreate(savedInstanceState);
    }
    initializeMap();
    Log.d("spn", "onactivity created");
}

private void initializeMap() {
    if (googleMap == null && mapsSupported) {
        mapView = (MapView) getActivity().findViewById(R.id.map);
        googleMap = mapView.getMap();
        Drawable dmarker=getResources().getDrawable(R.drawable.ic_launcher);
        dmarker.setBounds(0, 0, dmarker.getIntrinsicWidth(), dmarker.getIntrinsicHeight());
         overmarker=new Overlay_Marker(dmarker,getActivity());
         Drawable windmill = getResources().getDrawable(R.drawable.ic_launcher);
            Drawable bigBen = getResources().getDrawable(R.drawable.ic_launcher);
            Drawable eiffelTower = getResources().getDrawable(R.drawable.ic_launcher);

            overmarker.addOverlayItem(52372991, 4892655, "Amsterdam", windmill);
            overmarker.addOverlayItem(51501851, -140623, "London", bigBen);
            overmarker.addOverlayItem(48857522, 2294496, "Paris", eiffelTower);

            //List<Overlay_Marker> temp = (List<Overlay_Marker>) mapView.getOverlay();
           // temp.add(overmarker);

mapView.getOverlay()添加(overmarker); ///不工作

         GetLongitude_Latitude();
    }
}



public void GetLongitude_Latitude()
{
         manager=(LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
          location=provider.getLocation(LocationManager.NETWORK_PROVIDER);

          Criteria criteria = new Criteria();

          // Getting the name of the provider that meets the criteria
         String provider = manager.getBestProvider(criteria, false);

          if(provider!=null && !provider.equals("")){

              // Get the location from the given provider
              Location location = manager.getLastKnownLocation(provider);

             manager.requestLocationUpdates(provider, 20000, 1, this);

              if(location!=null)
                 onLocationChanged(location);
                 // Toast.makeText(getActivity(), "Location retrieved"+location.getLatitude()+" and "+location.getLongitude(), Toast.LENGTH_SHORT).show();

              //else
                //  Toast.makeText(getActivity(), "Location can't be retrieved", Toast.LENGTH_SHORT).show();

          }else{
              Toast.makeText(getActivity(), "No Provider Found", Toast.LENGTH_SHORT).show();
          }
          Log.d("spn", "location"+location);



}


@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    mapView.onSaveInstanceState(outState);
}

@Override
public void onResume() {
    super.onResume();
    mapView.onResume();
    initializeMap();
}

@Override
public void onPause() {
    super.onPause();
    mapView.onPause();
}

@Override
public void onDestroy() {
    super.onDestroy();
    mapView.onDestroy();
}

@Override
public void onLowMemory() {
    super.onLowMemory();
    mapView.onLowMemory();
}

@Override
public void onLocationChanged(Location location) {

    latitude=location.getLatitude();
    longitude=location.getLongitude();
    latlang=new LatLng(latitude, longitude);
    MarkerOptions marker=new MarkerOptions().position(latlang);
    googleMap.addMarker(marker);
    googleMap.setMyLocationEnabled(true);
    googleMap.getUiSettings().setMyLocationButtonEnabled(true);
    googleMap.getUiSettings().setZoomGesturesEnabled(true);
    googleMap.getUiSettings().setZoomControlsEnabled(true);
    googleMap.getUiSettings().setCompassEnabled(true);
    googleMap.getUiSettings().setRotateGesturesEnabled(true);
    CameraPosition cameraPosition = new CameraPosition.Builder().target(
            latlang).zoom(12).build();
    googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));






}

@Override
public void onProviderDisabled(String arg0) {
    // TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String arg0) {
    // TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
    // TODO Auto-generated method stub

}

}

0 个答案:

没有答案