Android 如何根据Google Maps v2上的缩放级别使标记显示或消失
我们都知道,谷歌地图上的一些预定义地标并没有在较低的缩放级别上显示,但在较高的缩放级别上,它会突然出现。我想知道我是否可以使自定义标记不在较低的缩放级别上显示,然后在较高的缩放级别上显示 编辑:这是我的代码片段。Android 如何根据Google Maps v2上的缩放级别使标记显示或消失,android,google-maps,zooming,google-maps-markers,android-maps-v2,Android,Google Maps,Zooming,Google Maps Markers,Android Maps V2,我们都知道,谷歌地图上的一些预定义地标并没有在较低的缩放级别上显示,但在较高的缩放级别上,它会突然出现。我想知道我是否可以使自定义标记不在较低的缩放级别上显示,然后在较高的缩放级别上显示 编辑:这是我的代码片段。 // Changing marker icon marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.gasbig)); // adding marker map.addMarker(marker)
// Changing marker icon
marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.gasbig));
// adding marker
map.addMarker(marker);
//position on Center
CameraPosition cameraPosition = new CameraPosition.Builder().target(
new LatLng(14.635356, 121.03272914)).zoom(16).build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
map.setOnCameraChangeListener(new OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition arg0) {
if(arg0.zoom > 7){
marker.visible(true);
}
}
});
我尝试了MaciejGórski的建议,但标记仍然出现在所有缩放级别上。关于这个问题我很抱歉,我还是一个android新手
提前感谢。您可以将我的答案修改为: 否则,使用可能是一个不错的选择。但对你的具体需求没有经验
刚意识到我可能误解了这个问题。我以为你指的是你自己的马克笔。不过,请看一下扩展库。很可能是他们有一些有用的东西。你可以通过修改我的答案来实现: 否则,使用可能是一个不错的选择。但对你的具体需求没有经验
刚意识到我可能误解了这个问题。我以为你指的是你自己的马克笔。不过,请看一下扩展库。很可能他们有一些有用的东西。你可以为任何你想要的
标记做这件事:调用setVisible
在OnCameraChangeListener.onCameraChange
回调true
或false
取决于CameraPosition.zoom
值
问题编辑后编辑:
您需要保留对标记
的引用,而不是标记选项
:
// adding marker
marker = map.addMarker(markerOptions);
然后在标记上调用setVisible
:
@Override
public void onCameraChange(CameraPosition cameraPosition) {
marker.setVisible(cameraPosition.zoom > 7);
}
注意:setVisible
始终在此处调用,但是,当使用许多标记时,这可能不是最佳选择。您可以对任何标记执行此操作:在onCamerachengeListener.onCameraChange中调用setVisible
,根据CameraPosition.zoom
值调用true
或false
问题编辑后编辑:
您需要保留对标记
的引用,而不是标记选项
:
// adding marker
marker = map.addMarker(markerOptions);
然后在标记上调用setVisible
:
@Override
public void onCameraChange(CameraPosition cameraPosition) {
marker.setVisible(cameraPosition.zoom > 7);
}
注意:setVisible
始终在那里调用,但当使用许多标记时,这可能不是最佳选择。Extensions lib无法做到这一点,但在较低的缩放级别上隐藏标记时,这可能是一个很好的选择,你想让他们分组,并且在任何缩放级别上都可以轻松访问。就我所知,米格尔想要这样的东西。嗨@MaciejGórski你有一些关于android MarkerManager的教程或代码吗?我找不到。@MiguelRivera我不知道是否有这样的教程。Extensions lib还不能做到这一点,但如果您不想在较低的缩放级别上隐藏标记,而是希望它们在任何缩放级别上都可以分组并易于访问,那么它可能是一个很好的选择。就我所知,它似乎可以从:Miguel,想要像.Hi@MaciejGórski这样的东西。你有一些关于android MarkerManager的教程或代码吗?我找不到。@MiguelRivera我不知道是否有这样的教程。我只是添加了一段代码。我只是添加了一段代码。为什么“markerOptions”是marker上的一个参数?我以为markerOptions是一种变量类型。@MiguelRiveramarkerOptions
是一种类型,markerOptions
可能是一个变量名。哦,好的。抱歉,先生。logcat说我在这一行有一个空指针异常“marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.gasbig));“我有一个名为gasbig的图像为什么“markerOptions”是marker上的一个参数?我以为markerOptions是一种变量类型。@MiguelRiveramarkerOptions
是一种类型,markerOptions
可能是一个变量名。哦,好的。很抱歉,先生。logcat说我在这行上有一个空指针异常“marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.gasbig));”我有一个名为gasbig的图像