标签: android-mapview

将缩放控件放置在MapView中

我正在尝试让缩放控件显示在a中mapview,以下代码几乎可以正常工作,但缩放控件显示在左上角,而mapview不是像我指定的那样通过底部中心setGravity().有人可以告诉我我错过了什么吗?

zoomView = (LinearLayout) mapView.getZoomControls();
zoomView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT)); 
zoomView.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
mapView.addView(zoomView);
Run Code Online (Sandbox Code Playgroud)

这些视图/布局都是以编程方式构建的,没有要调整的布局文件.

android android-mapview

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

在放大MapView时,奇怪的叠加绘制行为

我已经扩展了Overlay并实现draw()了以便在地图上绘制一些东西.完成缩放mapController.zoomIn()(双击地图时调用),叠加层将正确绘制到地图上.

但是每当我使用内置的变焦控制器放大/缩小时,叠加都没有正确绘制,并且需要平移地图才能刷新叠加层.

android overlay zoom android-mapview

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

错误膨胀类com.google.android.maps.MapView

我只是按照一个简单的地图教程http://developer.android.com/resources/tutorials/views/hello-mapview.html但收到此错误.我是android的新手我试图遵循通过互联网提供的所有解决方案,但还没有成功.请帮我.我的主要.xml在下面

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:apiKey="***"
/>
Run Code Online (Sandbox Code Playgroud)

和manifestfile就是这个

android google-maps map inflate android-mapview

18
推荐指数
4
解决办法
3万
查看次数

隐藏android google maps API v2中的标记信息窗口

目前,我可以使用Android Google Maps API v2在Google地图中查看我的所有标记.

在地图中添加我的标记:

mapView.addMarker
     (new MarkerOptions()
      .position(aUsersLocation).
      icon(BitmapDescriptorFactory.fromBitmap(aUserImage))
      .snippet(My_VALUE_1)
      .title(My_VALUE_2)
     .hideInfoWindow();
Run Code Online (Sandbox Code Playgroud)

我有几个标记,并为每个标记的代码段和标题指定了几个值(My_VALUE_1和My_VALUE_2).当用户点击标记时,我需要这些唯一值,我将在onMarkerClick监听器中收到以下值:

        @Override
        public boolean onMarkerClick(Marker theMarker) 
        {
            String aValue1 = theMarker.getSnippet();
            String aValue2 = theMarker.getTitle();
            theMarker.getPosition().latitude...
           ...
            return false;
        }
Run Code Online (Sandbox Code Playgroud)

我的问题是:当我将标题和标题值添加到标记时,当用户单击标记时,会显示infoWindow.

我需要隐藏标记的infoWindow.我尝试使用hideInfoWindow,但似乎无法正常工作.

请给我任何建议.

谢谢.

android google-maps android-maps android-mapview android-maps-v2

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

android - GC_FOR_ALLOC释放6346K,7%免费,暂停143ms,总计143ms

我正在使用OSMdroid库开发一个离线mapView.我的tilesource加载了tile,但渲染稳定.但事实是在我的日志消息中,我不断收到此错误:

GC_FOR_ALLOC freed 6346K, 7% free , paused 143ms, total 143ms

我不确定如何调试这个?任何想法,我有任何内存泄漏?

performance android garbage-collection android-mapview

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

始终在MapView上显示缩放控件

有没有办法在MapView上始终显示缩放控件?我已经添加了缩放控件

map=(MapView)findViewById(R.id.map);
map.setBuiltInZoomControls(true);
Run Code Online (Sandbox Code Playgroud)

但缩放控件淡入和淡出.我希望它们始终可见.

android android-mapview

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

在Android MapView上画一个圆圈

修复这里是我的解决方案:

编辑:更新以反映robguinness答案.

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.Projection;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;

public class CircleOverlay extends Overlay {

Context context;
double mLat;
double mLon;
float mRadius;

public CircleOverlay(Context _context, double _lat, double _lon, float radius ) {
    context = _context;
    mLat = _lat;
    mLon = _lon;
    mRadius = radius;
}

public CircleOverlay(Context _context, double _lat, double _lon, float radius ) {
    context = _context;
    mLat = _lat;
    mLon = _lon;
    mRadius …
Run Code Online (Sandbox Code Playgroud)

android android-mapview

17
推荐指数
2
解决办法
9567
查看次数

iOS - 如何将MapView限制为特定区域?

我有以下问题:

我有一个"绘制的地图"(图像),我作为叠加添加到MapView.有没有问题..但我需要的MapView限制在覆盖的区域,因此用户不能滚动/缩放这个区域之外..但它应该可以滚动/变焦的"边界内"覆盖 - 意味着我不能只为MapView禁用缩放/滚动.

关于这个主题有什么想法/解决方案吗?使用MapView/-Kit的原因是我需要将各种POI添加到自定义地图.仅使用ImageView + ScrollView呈现自定义地图时,这可能会变得更加复杂.

我已经研究了很多这个主题,但我没有找到一个很好的解决方案.

任何帮助表示赞赏!

最诚挚的问候,基督徒

编辑:这是我们的解决方案: 您提供了一个topleft和一个底部坐标来限制地图.(最小)缩放级别也是有限的.我已经停用减速功能,你可以从地图中弹出一点(为了更好的性能/ ux).我在叠加层上添加了一个〜1km的灰色边框,因此用户无法看到谷歌的原始世界地图.

LimitedMapView.h:

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>


@interface LimitedMapView : MKMapView <UIScrollViewDelegate>{

}

@property (nonatomic, assign) CLLocationCoordinate2D topLeftCoordinate;
@property (nonatomic, assign) CLLocationCoordinate2D bottomRightCoordinate;


@end
Run Code Online (Sandbox Code Playgroud)

LimitedMapView.m:

#import "LimitedMapView.h"

@implementation LimitedMapView

@synthesize topLeftCoordinate, bottomRightCoordinate;

- (void)scrollViewDidZoom:(UIScrollView *)scrollView{

    if([super respondsToSelector:@selector(scrollViewDidZoom:)]) [super scrollViewDidZoom:scrollView];

    if ([self region].span.latitudeDelta > 0.002401f || [self region].span.longitudeDelta > 0.003433f) {

        CLLocationCoordinate2D center = self.centerCoordinate;
        MKCoordinateSpan span = MKCoordinateSpanMake(0.002401f, 0.003433f);

        self.region = MKCoordinateRegionMake(center, span);

    }

}

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{

    if([super …
Run Code Online (Sandbox Code Playgroud)

iphone region mapkit ios android-mapview

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

在片段中使用Google Map v2的推荐方法是什么?

我想在片段内添加自定义布局的地图.

  1. 我可以使用将添加SupportMapFragment的ChildFragmentManager来实现.这种方法目前正在使用.但它有缺点,因为子片段事务是异步的,很难保证getMap不会返回null.
  2. 另一种方法是从super扩展SupportMapFragment存储mapView onCreateView

    mapView = super.onCreateView(inflater, container, savedInstanceState);

    并将其插入到膨胀的布局中.主要问题是,然后片段尝试从保存状态恢复谷歌地图SDK内部粉碎.

有没有其他方法可以解决这个问题.如果谷歌地图团队的某个人会推荐正确的方法会很好,因为你没有在样本中加入这样的东西.

android android-maps android-mapview android-maps-v2

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

Android MapView getMap()返回null

MapViewgetMap()方法可以返回null.我知道这是Google的预期行为.

有人可以提供关于何时以及在何种情况下该方法返回null 的明确描述getMap()

我知道如果Google服务在给定设备上不可用,getMap()则会返回null.这种可能性相对较好地记录在案.我更关注模糊的其他情况,即使在设备上安装Google服务,getMap()仍然可以返回null.

到目前为止,我的假设是底层地图系统有一些初始化,在此期间您的代码可能会执行并获得一个空地图.

我的假设是否正确?

在Activity或Fragment生命周期中是否有任何特定的位置我们可以明确地获得非null GoogleMap(如果我们假设安装了Google Services IS)?

我提出这个问题的目的是防止if(mapView.getMap() != null)在我的代码中散布一连串的支票.此外,这个问题似乎依然拿出定期在这里StackOverflow上,我想看看我们是否能够割肉出局的背后究竟是怎么回事用真情MapViewgetMap()

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

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