标签: google-maps-android-api-2

Android Google Maps API v2 onInfoWindowClick触发所有侦听器创建活动

嗨,我有一个有很多标记的地图.当我将标记添加到地图时,我想为每个标记添加一个onInfoWindowClick监听器和单独的数据.我想用onInfoWindowClick Listener加载带有标记信息的活动.

代码不正确.创建activety时,所有侦听器都会同时触发,当我单击infoWindow时,没有任何反应.

private void addMarkerToMap(double lat, double lng, String eventTitle,
            String eventDiscribtion) {
        Marker currentMarker = myMap.addMarker(new MarkerOptions()
                .position(new LatLng(lat, lng)).title(eventTitle)
                .snippet(eventDiscribtion));

        onInfoWindowClick(currentMarker);
    }

    @Override
    public void onInfoWindowClick(Marker marker) {

            Intent nextScreen = new Intent(MapsActivity.this,
                    EventActivity.class);
            nextScreen.putExtra("userId", "" + userId);
            nextScreen.putExtra("eventId", "" + eventId);

            startActivityForResult(nextScreen, 0);

    }
Run Code Online (Sandbox Code Playgroud)

google-maps-markers google-maps-android-api-2

1
推荐指数
1
解决办法
8249
查看次数

如何将Google Maps Android API v2标记链接到对象

我在地图中动态添加非固定数量的标记,每个标记都与我的POCO类的一个实例相关.

我需要链接它们,以便当用户点击其中一个标记时,我会在自定义InfoWindow中显示其余数据.

你有什么建议?

PS:我每次用户平移或缩放地图时添加新标记,我担心应用程序过载.是否放置了不可见的标记?

android google-maps-android-api-2

1
推荐指数
1
解决办法
6116
查看次数

在Google Maps Android API v2中使用新的OnMyLocationChangeListener

Google最终在Android API v2中添加了位置更改回调!但是,我无法直观地将其用于工作,Google也没有太多文档.有没有人让它上班?我还需要什么?

    public class ... extends SupportMapFragment implements GoogleMap.OnMyLocationChangeListener {
GoogleMap map;
LocationManager locationManager;
String provider;

        @Override
        public void onActivityCreated(android.os.Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            map = getMap();
                    if (map != null) {
                       Criteria criteria = new Criteria();
                       criteria.setAccuracy(Criteria.ACCURACY_FINE);
                           locationManager =(LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
                provider = locationManager.getBestProvider(criteria, false);
            }
        }

        @Override
        public void onResume() {
            super.onResume();
            while(map == null) {
                map = getMap();
                map.setMyLocationEnabled(true);
                map.setOnMyLocationChangeListener(this);
            }
        }
        @Override
        public void onMyLocationChange(Location loc) {
            //implementation
        }
}
Run Code Online (Sandbox Code Playgroud)

android google-maps-android-api-2

1
推荐指数
1
解决办法
8803
查看次数

有关使用GroundOverlay或TileOverlay在GoogleMap中显示大型叠加图像的一些问题

我有一个应用程序,用户可以在Google地图上加载图像.这是为2.3开发的,所以有一个MapActivity,一个MapView和我的自定义Overlay类来显示图像.在overlay class draw-method中,我每次都重新计算一次Matrix,因此图像的大小和位置正确.我还有一个校准模式,用户可以通过拖动参考点来调整图像.

我将为应用程序添加一些功能,我想从使用片段等一些更新开始.用MapFragment替换MapActivity会带来一些问题,因为似乎没有任何支持你可以自己实现绘图的覆盖.好像我将不得不使用GroundOverlays或TileOverlay.(如果我错了,请纠正我.)

在添加叠加后,这些似乎都不支持对叠加的任何修改,因此图像的校准将不起作用.我对该部分的计划是将普通的ImageView放在MapFragment的顶部以进行校准模式.(这将隐藏所有标记,但在校准期间无关紧要.)为此,我需要做两件事:*接收影响校准点的所有触摸事件,并转发其余部分以允许正常变焦等.*随时检测位置/旋转/缩放级别发生变化,因此我可以调整图像.问题1:我可以期待任何重大问题吗?

然后我必须决定是否优先选择GroundOverlays或TileOverlay.

GroundOverlay:这似乎需要最少的工作,因为它仍然会加载整个图像.我也认为它会自动处理屏幕方向变化等事情.问题2:GroundOverlay能否适用于大图像(最大2000*2000像素)?是否涉及复制图像?因为图像太大,我在内存中买不到一个以上的副本.

TileOverlay:在某种程度上,这似乎是一个更专业的解决方案,因为它只使用实际需要的部分,我可以在以后引入支持同时使用多个地图图像源.我可能需要提前生成切片并为每个切片保存一个单独的文件,将其保存在内存中并按需创建切片可能需要大量内存.(或许我可以创建一个单独的磁贴服务,但这看起来有点脏.)问题3:是否可以控制磁贴缓存将使用多少内存?通常的限制是否适用?我不想在应用程序中的其他地方耗尽内存,因为缓存占用了我允许使用的大部分内存.问题4:文档说"请注意,与其他叠加层不同,如果重新创建地图,则不会自动恢复平铺叠加层,必须手动重新添加".我想这会在每次屏幕旋转时发生,这意味着必须再次读取文件,导致明显的加载延迟.这有什么好办法吗?问题5:当调用getTile并且我返回null(因为tile被保存在文件中并且我不想在读取它时阻止ui线程),在再次请求它之前需要多长时间?(似乎没有办法手动加载单个图块.)问题6:如何确定一个图块图像的良好图像分辨率(性能和质量)?

android google-maps-android-api-2

1
推荐指数
1
解决办法
4108
查看次数

地图标记图标动画(适用于Android的Google Maps API V2)

在一个自定义事件中,我需要我Marker更新它的drawable 6次(基本上,我希望Marker在每次增长和每次收缩之间延迟0.5秒增长和缩小3次),因此它会通知用户所述事件.

有没有办法实现这一点,而不必实际删除Marker并再次添加不同的Drawable

android drawable marker google-maps-android-api-2

1
推荐指数
1
解决办法
1万
查看次数

从googleMap.getCameraPosition().target获取纬度经度0.0

我试图获得地图中心的纬度和经度.我正在使用Fragment来显示地图,

SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager()
                                    .findFragmentById(R.id.mapID);
if (fm != null) {
    googleMap = fm.getMap();
}
LatLng loc = googleMap.getCameraPosition().target;
Run Code Online (Sandbox Code Playgroud)

我打印这个loc,我的价值为0.0,0.0.我没有得到我错的地方.

我也尝试使用VisibleRegion地图中心的纬度和经度,但即使这样也无济于事.

android google-maps google-maps-markers google-maps-android-api-2

1
推荐指数
1
解决办法
2753
查看次数

如何在不加载地图的情况下在Android上使用Google Maps v2

有没有一种方法可以在不加载地图的情况下在android上使用google maps v2,我需要在单击按钮时读取gps位置,并计算2点之间的距离,我知道该怎么做,但前提是该地图是加载后,我需要没有地图的方法,这可能吗?

android google-maps android-fragments google-maps-android-api-2

1
推荐指数
1
解决办法
789
查看次数

找出位置是否在Google Maps v2上使用多边形绘制的形状内

如果我在Google Maps v2上绘制一个带多边形的形状,有没有办法找出我当前的位置是否在形状内?请写清楚代码谢谢

android google-maps google-maps-android-api-2

1
推荐指数
1
解决办法
3948
查看次数

如何在按钮点击打开内置的开放谷歌地图

请建议我,我是Android的新手如何打开一个内置的谷歌地图按钮点击在Android我有一个图像按钮. 如何在按钮点击打开内置的开放谷歌地图

android google-maps android-intent android-maps google-maps-android-api-2

1
推荐指数
1
解决办法
9230
查看次数

Android GoogleMap中的Gardient折线

我正在使用Google Maps开发应用程序,并且想要更改地图中折线的样式。我想将折线的颜色更改为渐变线,如何在android中做到这一点

google-maps google-maps-android-api-2

1
推荐指数
1
解决办法
882
查看次数