Esempio n. 1
0
  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
      if (resultCode == Activity.RESULT_OK) {
        double[] result = data.getDoubleArrayExtra("result");
        location = (String.valueOf(result[0]) + "," + String.valueOf(result[1]));
        System.out.println(location);
      }
    } else if (requestCode == 2) {
      if (resultCode == Activity.RESULT_OK) {
        title = data.getStringExtra("result");
        System.out.println(title);

        Intent k = new Intent(getActivity(), CategoryActivity.class);
        startActivityForResult(k, 3);
      }
    } else if (requestCode == 3) {
      if (resultCode == Activity.RESULT_OK) {
        category = data.getStringExtra("result");
        System.out.println(category);

        Intent i = new Intent(getActivity(), MapsActivity.class);
        startActivityForResult(i, 1);
      }
    }
  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(EUExUtil.getResLayoutID("plugin_uexgaodemap_basic_layout"));
    /*
     * 设置离线地图存储目录,在下载离线地图或初始化地图设置;
     * 使用过程中可自行设置, 若自行设置了离线地图存储的路径,
     * 则需要在离线地图下载和使用地图页面都进行路径设置
     * */
    // Demo中为了其他界面可以使用下载的离线地图,使用默认位置存储,屏蔽了自定义设置
    //  MapsInitializer.sdcardDir =OffLineMapUtils.getSdCacheDir(this);
    Intent intent = getIntent();
    mListener = (OnCallBackListener) intent.getSerializableExtra("callback");

    mContent = (FrameLayout) findViewById(EUExUtil.getResIdID("plugin_uexgaodemap_bg_content"));
    mButtons = new HashMap<String, CustomButtonBean>();
    mapView = (MapView) findViewById(EUExUtil.getResIdID("plugin_uexgaodemap_basic_map"));
    mapView.onCreate(savedInstanceState); // 此方法必须重写
    init();
    aMap.setOnMapLoadedListener(this);
    aMap.setOnMapClickListener(this);
    aMap.setOnMapLongClickListener(this);
    mCenter = intent.getDoubleArrayExtra(JsConst.LATLNG);
    markerMgr = new GaodeMapMarkerMgr(this, aMap, mListener, mOverlays);
    overlayMgr = new GaodeMapOverlayMgr(this, aMap, mListener, mOverlays);
    aMap.setOnMarkerClickListener(markerMgr);
    aMap.setOnInfoWindowClickListener(markerMgr);
  }
Esempio n. 3
0
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState != null) {
      mLocationCount = savedInstanceState.getInt(LOCATION_COUNT);
    }

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.geopoint_layout);

    Intent intent = getIntent();

    mLocationAccuracy = GeoPointWidget.DEFAULT_LOCATION_ACCURACY;
    if (intent != null && intent.getExtras() != null) {
      if (intent.hasExtra(GeoPointWidget.LOCATION)) {
        double[] location = intent.getDoubleArrayExtra(GeoPointWidget.LOCATION);
        mLatLng = new LatLng(location[0], location[1]);
      }
      if (intent.hasExtra(GeoPointWidget.ACCURACY_THRESHOLD)) {
        mLocationAccuracy =
            intent.getDoubleExtra(
                GeoPointWidget.ACCURACY_THRESHOLD, GeoPointWidget.DEFAULT_LOCATION_ACCURACY);
      }
      mCaptureLocation = !intent.getBooleanExtra(GeoPointWidget.READ_ONLY, false);
      mRefreshLocation = mCaptureLocation;
    }

    /* Set up the map and the marker */
    mMarkerOption = new MarkerOptions();
    mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
    mMap.setOnMarkerDragListener(this);

    mLocationStatus = (TextView) findViewById(R.id.location_status);

    /*Zoom only if there's a previous location*/
    if (mLatLng != null) {
      mLocationStatus.setVisibility(View.GONE);
      mMarkerOption.position(mLatLng);
      mMarker = mMap.addMarker(mMarkerOption);
      mRefreshLocation = false; // just show this position; don't change it...
      mMarker.setDraggable(mCaptureLocation);
      mZoomed = true;
      mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(mLatLng, 16));
    }

    mCancelLocation = (Button) findViewById(R.id.cancel_location);
    mCancelLocation.setOnClickListener(
        new OnClickListener() {

          @Override
          public void onClick(View v) {
            Collect.getInstance()
                .getActivityLogger()
                .logInstanceAction(this, "cancelLocation", "cancel");
            finish();
          }
        });

    mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    // make sure we have a good location provider before continuing
    List<String> providers = mLocationManager.getProviders(true);
    for (String provider : providers) {
      if (provider.equalsIgnoreCase(LocationManager.GPS_PROVIDER)) {
        mGPSOn = true;
      }
      if (provider.equalsIgnoreCase(LocationManager.NETWORK_PROVIDER)) {
        mNetworkOn = true;
      }
    }
    if (!mGPSOn && !mNetworkOn) {
      Toast.makeText(
              getBaseContext(), getString(R.string.provider_disabled_error), Toast.LENGTH_SHORT)
          .show();
      finish();
    }

    if (mGPSOn) {
      Location loc = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
      if (loc != null) {
        InfoLogger.geolog(
            "GeoPointMapActivity: "
                + System.currentTimeMillis()
                + " lastKnownLocation(GPS) lat: "
                + loc.getLatitude()
                + " long: "
                + loc.getLongitude()
                + " acc: "
                + loc.getAccuracy());
      } else {
        InfoLogger.geolog(
            "GeoPointMapActivity: "
                + System.currentTimeMillis()
                + " lastKnownLocation(GPS) null location");
      }
    }

    if (mNetworkOn) {
      Location loc = mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
      if (loc != null) {
        InfoLogger.geolog(
            "GeoPointMapActivity: "
                + System.currentTimeMillis()
                + " lastKnownLocation(Network) lat: "
                + loc.getLatitude()
                + " long: "
                + loc.getLongitude()
                + " acc: "
                + loc.getAccuracy());
      } else {
        InfoLogger.geolog(
            "GeoPointMapActivity: "
                + System.currentTimeMillis()
                + " lastKnownLocation(Network) null location");
      }
    }

    mAcceptLocation = (Button) findViewById(R.id.accept_location);
    if (mCaptureLocation) {
      mAcceptLocation.setOnClickListener(
          new OnClickListener() {

            @Override
            public void onClick(View v) {
              Collect.getInstance()
                  .getActivityLogger()
                  .logInstanceAction(this, "acceptLocation", "OK");
              returnLocation();
            }
          });
      mMap.setOnMapLongClickListener(this);
    } else {
      mAcceptLocation.setVisibility(View.GONE);
    }

    mReloadLocation = (Button) findViewById(R.id.reload_location);
    if (mCaptureLocation) {
      mReloadLocation.setOnClickListener(
          new OnClickListener() {

            @Override
            public void onClick(View v) {
              mRefreshLocation = true;
              mReloadLocation.setVisibility(View.GONE);
              mLocationStatus.setVisibility(View.VISIBLE);
              if (mGPSOn) {
                mLocationManager.requestLocationUpdates(
                    LocationManager.GPS_PROVIDER, 0, 0, GeoPointMapActivity.this);
              }
              if (mNetworkOn) {
                mLocationManager.requestLocationUpdates(
                    LocationManager.NETWORK_PROVIDER, 0, 0, GeoPointMapActivity.this);
              }
            }
          });
      mReloadLocation.setVisibility(!mRefreshLocation ? View.VISIBLE : View.GONE);
    } else {
      mReloadLocation.setVisibility(View.GONE);
    }

    // Focuses on marked location
    mShowLocation = ((Button) findViewById(R.id.show_location));
    mShowLocation.setVisibility(View.VISIBLE);
    mShowLocation.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(View v) {
            Collect.getInstance()
                .getActivityLogger()
                .logInstanceAction(this, "showLocation", "onClick");
            mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(mLatLng, 16));
          }
        });
    mShowLocation.setClickable(mMarker != null);
  }