Android onActivityResult在google maps api v2中不显示标记
我在地图上有一个onmaplick,用户在该点拍一张照片,然后将该图像作为缩略图返回到用户点击的点。但问题是,如果我指定了一个位置,onmaclick和onActivityResult就会起作用。例如: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
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"));
}