如何解决以用户身份放置多个叠加层
| 我一直在研究一个项目(使用googles api)创建地图,用户可以在其中长按以放置自定义叠加层。到目前为止,我已经允许用户放置一个覆盖,但是当您放置第二个覆盖时,程序崩溃。我怀疑是因为该方法尝试重用相同的变量名?这是我正在使用的代码段,有关如何实现此目标的任何帮助将不胜感激。@Override
public void onLongPressFinished(MotionEvent e,ManagedOverlay overlay,GeoPoint point,ManagedOverlayItem item) {
if (item != null)
Toast.makeText(getApplicationContext(),\"You selected...\" + item.getTitle() + \"!\",Toast.LENGTH_LONG).show();
ManagedOverlay managedOverlay = overlayManager.createOverlay(\"listenerOverlay\",getResources().getDrawable(R.drawable.tankicon));
managedOverlay.createItem(point,\"text\");
overlays.add(managedOverlay);
overlayManager.populate();
}
}
解决方法
请试试这个。这用于在地图视图上显示多个叠加层,可能会解决问题:https://github.com/donnfelker/android-mapviewballoons
,为了解决该问题,我只使用了onDoubleTap方法而不是longPress。由于longPress可能会被误解,有时甚至无法正常工作,因此事实证明它是有问题的方法。
但是,大部分代码仍然相同。
@Override
public boolean onDoubleTap(MotionEvent e,ManagedOverlay overlay,GeoPoint point,ManagedOverlayItem item) {
ManagedOverlay managedOverlay = overlayManager.createOverlay(\"Location\",getResources().getDrawable(R.drawable.icon));
managedOverlay.createItem(point,\"place\");
overlays.add(managedOverlay);
Toast.makeText(getApplicationContext(),\"You selected \" + managedOverlay.getName() + \" !\",Toast.LENGTH_LONG).show();
overlayManager.populate();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。