【发布时间】:2015-07-14 07:38:27
【问题描述】:
我正在尝试绘制显示用户当前位置的标记,尽管我在初始化地图时启用了 setMycurrentLocation,所以我得到了当前位置的纬度和经度。现在我正在做的是在当前位置显示标记。我就是这样做的
googleMap.animateCamera(CameraUpdateFactory.zoomTo(15), 8000, new GoogleMap.CancelableCallback() {
@Override
public void onFinish() {
Handler handler1 = new Handler();
handler1.postDelayed(new Runnable() {
public void run() {
addMarker(googleMap.getLocation.getLatitude(), googleMap.getLocation.getLatitude());
我的 addMarker 函数是这样的
private void addMarker(Double Lat, Double Long) {
/** Make sure that the map has been initialised **/
if (null != googleMap) {
googleMap.addMarker(new MarkerOptions()
.position(new LatLng(Lat, Long))
.title("You")
.draggable(true)
);
}
}
所以这种添加标记的代码和平只有在我使用地图动画的完成功能之外尝试它时才有效,但是
有时它会给我一个空值,因为有时它无法从地图中获取位置。 所以我试着把它放在相机停止动画之后。
但在我的情况下它不起作用,知道吗?或者我还有什么其他方法 相机停止动画时可以添加标记吗?
【问题讨论】:
-
你不需要“postDelayed”,当动画完成后,你就做你想做的事。您是否删除了之前创建的标记?
-
但如果我不执行帖子延迟应用程序崩溃,看起来地图不会立即返回位置
-
@NDorigatti 我想放置多个标记,实际上在其他功能中我正在从网络服务获取标记 ID,我想放置许多多个标记,但在相机停止动画之后
-
如果不延迟会发生哪种崩溃?应用程序不应该崩溃,因为回调在主线程上,即地图线程
-
添加标记行出现空点异常错误 addMarker(googleMap.getLocation.getLatitude(), googleMap.getLocation.getLatitude());
标签: android google-maps