标签: android-mapview

当用户滚动MKMapView时,从Core Data加载其他对象

使用iPhone 3.0 SDK中的MapKit,可以创建符合MKAnnotation协议的对象.将这些加载到MKMapView非常简单.但是,当用户滚动MKMapView时,是时候加载新的注释了.请求新对象的可能位置是mapView:regionDidChangeAnimated:在更改地图区域时调用,然后使用新注释添加/替换注释.

具体来说,我想查询Core Data以检索当前MKCoordinateRegion(mapView.region)中存在的所有对象,以便我只加载将在屏幕上显示的对象.Core Data中的对象具有纬度和经度属性(CLLocation属性在类'.m/.h中定义,我可以从中手动填充)并将其用于NSPredicate以查找附近的对象.

由于Core Data数据库中存在多少个对象的性质,我们不能将所有对象预加载为注释,否则我们将耗尽内存(并且它会非常慢).

如何仅检索当前mapview边界中具有位置的对象?

iphone mapping core-data mkcoordinateregion android-mapview

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

从mapView中删除叠加层

我在mapView中创建叠加层,问题是当我再次回到mapsview活动时,我看到我之前创建的叠加层.我试图删除ondestroy方法中的叠加层,它没有帮助.全部,请相信me.heres代码...同样在onCreate()我使用了mapView.invalidate(); 这也没有帮助.我只是想在活动结束时摆脱覆盖.有解决方案吗

   @Override
protected void onDestroy(){ 
    super.onDestroy();
    stopWorker=true;
    mapView.invalidate();
    mapView.postInvalidate();
    for (int i=0; i<mapView.getOverlays().size(); i++ ) {
        mapView.getOverlays().remove(i);
    }

    Toast.makeText(this,"map destroy ...", Toast.LENGTH_LONG).show();
    mapView.getOverlays().clear();
}
Run Code Online (Sandbox Code Playgroud)

maps android overlays android-mapview

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

哪里可以找到默认的android的谷歌地图标记和默认气球代码?

见下图.在我的应用程序(使用MapView)中,我想使用这样的默认标记(但具有不同的背景颜色 - 红色,绿色和黄色)和气球.我在哪里可以找到这些图像和气球代码?

谷歌地图屏幕

android android-mapview

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

如何在android地图视图中为标记实现下降针脚动画

有没有办法在Android中像谷歌那样实现谷歌地图的下降引脚/标记动画???

android android-mapview

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

Android谷歌地图:地图视图初始化

我正在尝试使用MapView该类在我的Android应用程序中显示一个简单的地图.我onCreate在我的活动中使用以下方法:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        MapsInitializer.initialize(this);
    } catch (GooglePlayServicesNotAvailableException e) {
        Log.e("Address Map", "Could not initialize google play", e);
    }

    MapView mapView = new MapView(this);
    CameraUpdate camPos = CameraUpdateFactory.newLatLng(new LatLng(11.562276,104.920292));
    mapView.getMap().moveCamera(camPos);
    setContentView(mapView);
}
Run Code Online (Sandbox Code Playgroud)

我有一个NullPointerException,因为该方法mapView.getMap()返回null.不明白为什么,谷歌播放服务显然存在并初始化.

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

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

Android + nutiteq:未显示离线地图图块

参考这个网站,我建立了MapActivity以下内容:

public class MainActivity extends Activity {

    private MapView mapView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mapView = (MapView) findViewById(R.id.map);
        mapView.setComponents(new Components());

        RasterDataSource datasource = new PackagedRasterDataSource(new EPSG3857(), 11, 12, "t{zoom}_{x}_{y}", getApplicationContext());
        RasterLayer mapLayer = new RasterLayer(datasource, 16);
        mapView.getLayers().setBaseLayer(mapLayer);
        mapView.setFocusPoint(mapView.getLayers().getBaseLayer().getProjection().fromWgs84(47.0f, 9.0f));
        //mapView.setZoom(15);
    }

    @Override
    protected void onStart(){
        super.onStart();
        mapView.startMapping();
    }

    @Override
    protected void onStop(){
        mapView.stopMapping();
        super.onStop();
    }

}
Run Code Online (Sandbox Code Playgroud)

我已将瓷砖放在我的res/raw文件夹中,但是没有显示任何内容.有什么我想念的吗?根据教程,它必须显示一些东西.我还可以提供什么来调试它?xml是一个简单MapViewwidthheight.

此处此处生成切片.作为参数,我没有设置CloudMade Key.

android android-mapview nutiteq cartodb

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

如何禁用地图工具栏

MapToolbar和标记显示在地图上,当点击工具栏时,它会重定向到谷歌地图.我想禁用此功能.

在此输入图像描述

map_view.xml

 <com.google.android.gms.maps.MapView
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:id="@+id/summary_mv_map"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="10dp"
        map:liteMode="true"/>
Run Code Online (Sandbox Code Playgroud)

我尝试过:添加mapView.getUiSettings().setMapToolbarEnabled(false),但无法解析getUiSettings().setMapToolbarEnabled().

注意:不想删除标记

android google-maps android-mapview

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

如何设置圆角MapView小部件

如何设置圆角MapView小部件?

这是我的地图视图

<com.google.android.gms.maps.MapView
                android:id="@+id/map_view"
                android:layout_width="match_parent"
                android:layout_height="260dp"
                app:liteMode="true"
                app:mapType="normal" />
Run Code Online (Sandbox Code Playgroud)

谢谢

android android-mapview

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

MapView.Polyline 在本机与 expo 反应中抛出错误(我正在使用 android 进行测试)

I\xe2\x80\x99m 尝试用折线绘制一条线,但 I\xe2\x80\x99m 收到此错误:

\n

更新由 AIRMapPolyline\nnull\n管理的视图的属性 \xe2\x80\x98lineCap\xe2\x80\x99 时出错:尝试调用虚拟方法 \xe2\x80\x98void com.google.android.gms.maps.model.. ug(java.util.List) 对空对象引用

\n

这是代码:

\n
           <MapView\n                style={styles.map}\n                initialRegion={{\n                    latitude: initialLocation.latitude,\n                    longitude: initialLocation.longitude,\n                    latitudeDelta: 0.01,\n                    longitudeDelta: 0.01\n                }}\n            >\n                <Circle\n                    center={currentLocation.coords}\n                    radius={30}\n                    strokeColor=\'rgba(158, 158, 255, 1.0)\'\n                    fillColor=\'rgba(0, 0, 255, 0.3)\'\n                />\n                {drawLine && (\n                    <MapView.Polyline\n                        coordinates={locations.map(loc => {\n                            return {\n                                latitude: loc.coords.latitude,\n                                longitude: loc.coords.longitude\n                            };\n                        })}\n                        strokeColor=\'red\'\n                        strokeWidth={1}\n                    />\n                )}\n            </MapView>\n\n
Run Code Online (Sandbox Code Playgroud)\n

地图绘制正常,圆圈显示正常,但是当我尝试绘制一条线时,它会抛出可怕的错误。

\n

对象数组已被检查

\n

在此输入图像描述 在此输入图像描述

\n

https://github.com/rafaelsoteldosilva/maptest

\n

会是什么呢?

\n

拉斐尔

\n

android-mapview reactjs react-native

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

Android,如何在地图上制作动画叠加层?

请指导我如何在地图上做动画标记/图钉/叠加图标.我从最近2天尝试了很多,但我没有成功.

提前致谢..

不工作

RES /抽拉/ map_marker.xml

 <?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
 android:oneshot="false">
<item android:drawable="@drawable/ecall_lowon" android:duration="200" />
<item android:drawable="@drawable/ecall_mediumoff" android:duration="200" />
Run Code Online (Sandbox Code Playgroud)

Java代码

    Drawable drawable = this.getResources().getDrawable(R.drawable.map_marker);
    MapItemizedOverlay mapItemizedOverlay = new MapItemizedOverlay(drawable, this);

    GeoPoint geoPoint1 = new GeoPoint((int)(9.982878 * 1E6), (int)(76.285774 * 1E6));
    GeoPoint geoPoint2 = new GeoPoint((int)(9.973928 * 1E6), (int)(76.276824 * 1E6));

    OverlayItem overlayItem1 = new OverlayItem(geoPoint1, "Title1", "");
    OverlayItem overlayItem2 = new OverlayItem(geoPoint2, "Title2", "");

    mapItemizedOverlay.addOverlayItems(overlayItem1);
    mapItemizedOverlay.addOverlayItems(overlayItem2);

    mapView.getOverlays().add(mapItemizedOverlay);
Run Code Online (Sandbox Code Playgroud)

但没有成功......

android android-maps android-mapview

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

MapView内部自定义RecyclerViewAdapter

我正在尝试使用每个MapView内部实现包含CardViews的RecyclerView.问题是,在自定义适配器中初始化的MapView不会加载,除非您单击它.正如这里已经提到的:Android MapView不会加载,除非您触摸mapview, 您可以通过覆盖onResume()来解决问题.我试过以下方式:

@Override
    public void onResume() {
        if(LocationsAdapter.ViewHolder.mapView != null) {
            LocationsAdapter.ViewHolder.mapView.onResume();
        }

        super.onResume();
    }
Run Code Online (Sandbox Code Playgroud)

老实说,我根本不知道如何以任何其他方式覆盖onResume,如果我在这里打破了某些编程规则,请原谅我.我将mapView作为在LocationsAdapter中创建的ViewHolder中的公共静态.这似乎不起作用,地图仍然是空白.

Adapter内的ViewHolder实现了OnMapReadyCallback.

public static class ViewHolder extends RecyclerView.ViewHolder implements OnMapReadyCallback

...

 @Override
            public void onMapReady(GoogleMap googleMap) {
                this.googleMap = googleMap;
                Location location = locations.get(getAdapterPosition());
                this.googleMap.addMarker(new MarkerOptions().position(location.getLatlng()).title(location.getName()));
                this.googleMap.moveCamera(CameraUpdateFactory.newLatLng(location.getLatlng()));
                this.googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(location.getLatlng(), 7.0f));
            }
Run Code Online (Sandbox Code Playgroud)

调用ViewHolder时会调用这两个方法.

mapView.onCreate(null);
mapView.getMapAsync(this);
Run Code Online (Sandbox Code Playgroud)

另一篇提到这个问题的文章还没有答案:cardview里面的mapView没有加载地图.

我的目标是,无论片段当前处于什么生命周期,都要加载映射.我假设您不需要适配器,片段和XML来解决此问题.如果你这样做,请告诉我.

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

-1
推荐指数
2
解决办法
2233
查看次数