onActivityResult不会在google maps api v2中显示标记

时间:2014-11-28 06:29:59

标签: android google-maps

我在地图上有onMapClick,用户在那时拍摄照片,然后将该图像作为缩略图返回到用户点击的那一点。问题是,如果我指定一个位置,OnMapClick和onActivityResult工作。例如:

private LatLng point = new LatLng(xx.xxxx, xx.xxxx);

但是,如果我使用'onMapClick(LatLng point)'中的点,然后将其添加到此:

 public void onActivityResult(int requestCode, int resultCode, Intent data, **LatLng point**) { 

然后在我的onActivityResult标记中使用它:

MarkerOptions markerOptions = new MarkerOptions()
 .position(point)
 .icon(BitmapDescriptorFactory
 .fromBitmap(bitmap));
 googleMap.addMarker(markerOptions);

然后一切仍然有效,但在点击的地图上,图像不会显示在地图上。另外,日志中没有任何内容可以说明。所以我真的很困惑!

这是我的Camera意图和onActivityResult:

public void onMapClick(LatLng point) {

           root = Environment.getExternalStorageDirectory().toString()
           + "/Your_Folder";
           imageFolderPath = root + "/saved_images";
           File imagesFolder = new File(imageFolderPath);
           imagesFolder.mkdirs();
          imageName = "test.png";
          File image = new File(imageFolderPath, imageName);

          fileUri = Uri.fromFile(image);
          Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

          takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);

          startActivityForResult(takePictureIntent,
                  TAKE_PICTURE);

      }

      public void onActivityResult(int requestCode, int resultCode, Intent data, LatLng point) {
          // TODO Auto-generated method stub
          super.onActivityResult(requestCode, resultCode, data);

          if (requestCode == TAKE_PICTURE && resultCode == RESULT_OK) {

              Bitmap bitmap = null;
                  try {
                      GetImageThumbnail getImageThumbnail = new GetImageThumbnail();
                      bitmap = getImageThumbnail.getThumbnail(fileUri, this);
                  } catch (FileNotFoundException e1) {
                      e1.printStackTrace();
                  } catch (IOException e1) {
                      e1.printStackTrace();
                  }

                  MarkerOptions markerOptions = new MarkerOptions()
                  .position(point)
                  .icon(BitmapDescriptorFactory
                  .fromBitmap(bitmap));
                  googleMap.addMarker(markerOptions);


          }
          }
      public void showFullImage(View view) {
            String path = (String) view.getTag();

            if (path != null) {

                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_VIEW);
                Uri imgUri = Uri.parse("file://" + path);
                intent.setDataAndType(imgUri, "image/*");
                startActivity(intent);

            }

        }

    }

很抱歉,如果代码看起来很乱,但过去4天一直在解决这个问题并且一直在添加,删除代码,当我开始工作时会整理: - )

修改

我认为发生的事情是,当您在OnMapClickListener OnActivityResult上指向地图时会忘记(如果愿意)“放置图像的位置。因此,不提供任何错误消息并丢弃图像?

2 个答案:

答案 0 :(得分:0)

我有一个简单的程序来显示特定位置的标记....我不知道它对你有用吗... 这是代码

protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();         

    mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);         

    final LatLng CIU = new LatLng(13.0839, 80.2700);         

    Marker ciu = mMap.addMarker(new MarkerOptions()                                   

    .position(CIU).title("My Office")); 
}

答案 1 :(得分:0)

问题可能是,您必须检查Sub Macro1() ...do stuff Range("a1")=10 'log progress Macro2 10 'run next step, passing in some info End Sub Sub Macro2(input) ...do stuff with 'input' Range("a2")=20 Macro3 20 End Sub 'etc etc 中的if(savedInstancestate == null)并仅在视图为onCreate()时创建视图;为了创建一个新的null ...,我只能假设,因为所提供的代码中没有相关部分(但似乎还是有可能的)。