Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android onActivityResult在google maps api v2中不显示标记_Android_Google Maps - Fatal编程技术网

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

Android onActivityResult在google maps api v2中不显示标记,android,google-maps,Android,Google Maps,我在地图上有一个onmaplick,用户在该点拍一张照片,然后将该图像作为缩略图返回到用户点击的点。但问题是,如果我指定了一个位置,onmaclick和onActivityResult就会起作用。例如: private LatLng point = new LatLng(xx.xxxx, xx.xxxx); 但如果我在“onmaplick(LatLng point)”中使用点,然后将其添加到: public void onActivityResult(int requestCode, int

我在地图上有一个onmaplick,用户在该点拍一张照片,然后将该图像作为缩略图返回到用户点击的点。但问题是,如果我指定了一个位置,onmaclick和onActivityResult就会起作用。例如:

private LatLng point = new LatLng(xx.xxxx, xx.xxxx);
但如果我在“onmaplick(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);
然后,一切仍然正常,但此时图像不会显示在地图上。而且日志里什么也没说。所以我真的很困惑

以下是我的相机意图和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天中一直在解决此问题,并且一直在添加、删除代码,当我完成此工作时,将进行整理:-)

编辑


我认为现在发生的事情是,当你在地图上的
onmaclicklistener
中指向
OnActivityResult
“忘记(如果你愿意)”放置图像的位置时。因此,不会给出任何错误消息并丢弃图像

我有一个简单的程序,可以在特定位置显示标记……我不知道它是否对您有用。。。 这是密码

创建时受保护的void(Bundle savedInstanceState) { super.onCreate(savedInstanceState)


问题可能是,您必须在
onCreate()
中检查
if(savedInstancestate==null)
,并且仅在视图为
null
时创建视图;为了不创建新的
MapFragment
,而我只能假设,因为提供的代码中没有相关部分(但看起来仍然可能).

谢谢您的代码,但问题是这会将标记放置在该特定位置,而不是地图上的选定点上。请尝试此代码。.我不确定代码是否适用于GeoPoint Geoppoint=mapView.getProjection().fromPixels((int)event.getX(),(int)event.getY());//纬度双纬度lat=geopoint.getLatitudeE6()/1E6;//经度双纬度lon=geopoint.GetLongtudee6()/1E6;Toast.makeText(上下文,“lat:+lat+”,lon:+lon,Toast.LENGTH_SHORT)。show();不,还是不走运。我可能错了,但我认为当你点击地图并拍照,然后从ActivityReturn返回时,我认为应用程序“忘记”了用户点击的点。这有意义吗?
    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")); 
}