2016-07-19 18 views
-2

我正在Android应用程序使用地图来跟踪用户的位置。我想修复当前位置标记在屏幕上。在我目前的工作演示中,当我将地图当前位置标记隐藏在屏幕下或移动到另一个位置时。我应该如何实现这一目标?提前致谢。修复标记位置,而不是地图旋转/方位(方向)像口袋妖怪去

+1

您能否提供代码,以便您使用标记和初始化地图? –

+0

代码是相同的,我们总是写入添加标记和动画摄像头的位置。我可以举个例子,我正在寻找的是你玩过的入口游戏,标记保持在相同的位置,但你可以围绕它旋转地图。 – akki101

+1

请查看提出好的问题,这些指导原则:http://stackoverflow.com/help/mcve – SunSparc

回答

0

如果我正确理解你,那么你将不得不做一些破解。对不起,你没有提供我的代码,所以我不可能提示你确切的解决方案。但我可以解释一下想法。

你放在FrameLayout里两种观点的想法:MapView类和视图(抱歉伪代码)。

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <MapView 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

    <View 
     android:id="@+id/touch_zone" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:clickable="true"/> 
</FrameLayout> 

因此,您可以防止触摸地图。然后,你需要让你的位置

例如地图跟踪你可以捕捉事件时,你的位置变化,并呼吁googleMap.animateCamera(...)

那么对于touch_zone视图,您需要致电setOnTouchListener与您的匿名类,它将处理触摸到我们上面观。在这种方法中,您将实现在屏幕上获取坐标的逻辑,使得投影到地图上的坐标并实现,您需要旋转地图的位置。

+0

我没有写任何代码,除了在地图上放置标记,bcoz我不知道该怎么做。所以,让我解决您的问题。谢谢。 – akki101

0

那么如果你想标记总是回来到屏幕的中心,你可以使用:

CameraPosition cameraPosition = new CameraPosition.Builder() 
      .target(latLng).zoom(zoom).build(); 

googleMap.animateCamera(CameraUpdateFactory 
      .newCameraPosition(cameraPosition)); 

这里的latLng持有纬度和标记的经度,每一次位置的标记被改变,或者如果你想让标记回到中心,你可以使用上面的代码。

另外,还可以防止地图被拖动使用下面的代码:

googleMap.getUiSettings().setScrollGesturesEnabled(false); 

这将禁用地图上走动,但旋转,平移和缩放效果还算不错。

+0

我可以给ü例子就是我正在寻找的是HV你玩过游戏的入口或宠物小精灵去那里标记保持在同一位置,但你可以围绕它旋转地图。 – akki101

+0

我没有参加过任何比赛,但我看到有人在玩他们。我已经用我所想做的事情更新了答案。 –