标签: mapfragment

脱机使用mapfragment功能

我正在开发一个跟踪应用程序,因此我使用GPS数据在画布中绘制路线+检查点.问题是,我在SurfaceView中开发了zoom/drag + span以及所有"lat-long to cartesian conversion",但是如果我可以使用maps api功能(我自己的话)就可以轻松完成所有这些工作.覆盖).

所以我的问题是,我可以使用没有互联网连接的地图api/MapFragment并利用api功能吗?你们有没有做过这样的事情?

android mapactivity mapfragment

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

Android MapFragment运行时错误 - 找不到类'maps.jk'

我正在使用SupportMapFragment并取得圆满成功.我根本没有任何问题.

但是我在应用程序运行时遇到错误.我正在运行Gingerbread手机,它有最新的GooglePlay.另请注意,我正在使用SupportMapFragment和其他支持类,以迎合预蜂窝.

Could not find class 'maps.j.k', referenced from method maps.y.ae.a`
Run Code Online (Sandbox Code Playgroud)

一旦我膨胀我的视图就会发生错误.

inflater.inflate(R.layout.fragment_map, container, false);
Run Code Online (Sandbox Code Playgroud)

我的布局文件(fragment_map.xml):

<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" />
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪(出错时):

Thread [<1> main] (Suspended)   
<VM does not provide monitor information>   
PhoneLayoutInflater(LayoutInflater).inflate(int, ViewGroup, boolean) line: 322  
MapsFragment.onCreateView(LayoutInflater, ViewGroup, Bundle) line: 90   
MapsFragment(Fragment).performCreateView(LayoutInflater, ViewGroup, Bundle) line: 1460  
FragmentManagerImpl.moveToState(Fragment, int, int, int, boolean) line: 911 
FragmentManagerImpl.moveToState(int, int, int, boolean) line: 1088  
BackStackRecord.run() line: 682 
FragmentManagerImpl.execPendingActions() line: 1444 
FragmentManagerImpl$1.run() line: 429   
FragmentActivity$1(Handler).handleCallback(Message) line: 587   
FragmentActivity$1(Handler).dispatchMessage(Message) line: 92   
Looper.loop() …
Run Code Online (Sandbox Code Playgroud)

android android-fragments mapfragment supportmapfragment android-maps-v2

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

Android:CollapsingToolbarLayout中的MapView

我目前正在尝试将Map View(或包含地图的片段)放入CollapsingToolbarLayout。我希望在RecyclerView滚动时对其具有视差效果。不幸的是,它根本没有出现!甚至没有灰色网格!折叠动画正在运行。我到处都在搜索,但是我所能找到的只是关于ImageView,没有其他组件。所以这是我的问题:

  1. 它甚至有可能把任何东西比ImageViewCollapsingToolbarLayout?(文档讨论的是子视图,因此我认为这是可能的)
  2. 如果是这样,是否还允许使用片段?
  3. 那我在做什么错呢?

这是我的xml:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:map="http://schemas.android.com/tools"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:layout_height="300dp">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/main_activity_toolbar"
                android:layout_height="?attr/actionBarSize"
                android:layout_width="match_parent"
                android:background="?attr/colorPrimary"
                android:layout_alignParentTop="true"
                app:layout_collapseMode="pin"
                app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
            </android.support.v7.widget.Toolbar>

            <com.google.android.gms.maps.MapView
                android:id="@+id/main_activity_mapview"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:apiKey="AIzaSyA-kEuKT39QK8eG7iYWriFgsvkrZZz6zNo"
                android:clickable="true"
                app:layout_collapseMode="parallax" />

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/main_rv_list_places"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

还有我拿回地图的部分。onMapReady永远不会触发。

    if (mMap == null) {

        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.getMapAsync(new OnMapReadyCallback() {
            @Override …
Run Code Online (Sandbox Code Playgroud)

android android-mapview mapfragment android-collapsingtoolbarlayout

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

加载Mapview时,启动时应用程序崩溃(java.lang.OutOfMemoryError:确保本地容量)

安装后启动应用程序只会在Samsung手机上导致崩溃。在其他手机上不会发生。错误是

java.lang.OutOfMemoryError:确保本地容量:

仅在安装后首次启动应用程序时才发生崩溃。重新启动该应用程序时,它会运行,但会导致内存不断增加并且永远不会清除。

这是代码:

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val view= inflater.inflate(R.layout.fragment_place_search_results, container, false)
    mapView = childFragmentManager.findFragmentById(R.id.placesearchresults_map) as SupportMapFragment
    mapView.onCreate(savedInstanceState)
    mapView.getMapAsync(this)
    retainInstance = true
    return view
}

override fun onResume() {
    super.onResume()
    mapView.onResume()
}

override fun onPause() {
    super.onPause()
    mapView.onPause()
}

override fun onStart() {
    super.onStart()
    mapView.onStart()
}

override fun onDestroy() {
    super.onDestroy()
    map?.clear()
    mapView.onDestroy()
    mapMarkerFactor.recycle()
}

override fun onSaveInstanceState(outState: Bundle) {
    super.onSaveInstanceState(outState)
    mapView.onSaveInstanceState(outState)
}

override fun onLowMemory() {
    super.onLowMemory()
    mapView.onLowMemory()
}
Run Code Online (Sandbox Code Playgroud)

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" …
Run Code Online (Sandbox Code Playgroud)

android google-maps memory-leaks android-mapview mapfragment

5
推荐指数
0
解决办法
315
查看次数

SupportMapFragment vs MapFragment在性能方面

SupportMapFragmentMapFragment之间有什么区别吗?在参考文献中,它表示您应该只在使用Android API级别12及更高级别时使用MapFragment,但是还有其他差异吗?其中一个更快吗?

performance android mapfragment supportmapfragment difference

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

如何在适配器中的listview项中添加mapfragment?

我有一个列表视图.我想在每个列表项中添加一个地图.单击列表项时,地图将显示/隐藏.当地图显示时,我可以缩放,查看位置详细信息...... 但是我无法在适配器中设置MapFragment.所以,给我一些解决方案.谢谢.

gMap = (MapFragment) getFragmentManager().findFragmentById(R.id.map);
googleMap = gMap.getMap();
Run Code Online (Sandbox Code Playgroud)

我不能在getView中这样做.

android android-listview mapfragment

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

在片段中映射片段V2

我在Google Map Fragments中面临一些问题"getmap()中的空指针Expcepttion".我想在片段中插入mapfragment请查看代码并告诉我是否正在使用正确的appraoch ..并让我知道我需要对我的代码做些什么来使其工作

我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" 
  android:orientation="vertical"
  android:background="@drawable/bg2"
  android:weightSum="100">

<Button
    android:id="@+id/perx_button"
    android:layout_marginTop="70dip"
    android:layout_gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/perx_card_btn" />

<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />

</LinearLayout>


public class PerxDetailedFragment extends SupportMapFragment {

  static final LatLng HAMBURG = new LatLng(53.558, 9.927);
  static final LatLng KIEL = new LatLng(53.551, 9.993);
 GoogleMap map;
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

     FragmentTransaction ft = getFragmentManager().beginTransaction();

    map = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map))
            .getMap();

    SupportMapFragment fmap = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.map);

    if (fmap == null) …
Run Code Online (Sandbox Code Playgroud)

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

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

如何隐藏地图片段 - Android

使用下面的代码showhide MapFragment,它运作良好:

public class MapFragmentActivity extends FragmentActivity {
...........
mMapFragment = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map));
googleMap = mMapFragment.getMap();  
googleMap.setMyLocationEnabled(true);
.....
if(isChecked)
  {                                 
        mMapFragment.getView().setVisibility(View.VISIBLE);                                     
  }
  else 
  {
        mMapFragment.getView().setVisibility(View.GONE);
  }
Run Code Online (Sandbox Code Playgroud)

但每当我使用它时Animation,Map永远不会隐藏,它始终是visible,而动画对我有用;

if(isChecked)
    {               
        mMapFragment.getView().setVisibility(View.VISIBLE);
        mMapFragment.getView().startAnimation(AnimationUtils.loadAnimation(MapFragmentActivity.this,
         R.anim.slide_up));
    }
    else 
    {
        mMapFragment.getView().setVisibility(View.GONE);
        mMapFragment.getView().startAnimation(AnimationUtils.loadAnimation(MapFragmentActivity.this,
         R.anim.slide_down));
    }
Run Code Online (Sandbox Code Playgroud)

android android-fragmentactivity mapfragment google-maps-android-api-2

3
推荐指数
2
解决办法
6135
查看次数

移除 MapFragment

我的应用程序中有一个 MapFragment 和常规 Fragment。问题是当我在片段之间切换时,MapFragment 在后台。我有代码来查找 MapFragment 是否存在,但我需要代码来删除它。

代码:

FragmentMapView mapFragmentcheck = (FragmentMapView)getFragmentManager().findFragmentByTag("map");
if (mapFragmentcheck != null) {
    Log.d("tag","max exists");
    if (mapFragmentcheck.isVisible()) {
        Log.d("tag","map is visble, remove it");    
         // Do remove here, but how?
    }
}
else {
    Log.d("tag","map does not exists");
}
Run Code Online (Sandbox Code Playgroud)

android mapfragment

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

如何在同一个活动中获得两个 MapFragment - Google Map Api

我需要在活动中显示两个具有两个不同位置的 MapFragment。在我的 XML 文件中,我有两个名为“map”和“map_two”的 MapFragment,在 Java 中,我在 onCreate 中的代码是:

com.google.android.gms.maps.MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(map);
        mapCount = 1;
        mapFragment.getMapAsync(this);
        com.google.android.gms.maps.MapFragment mapFragmentTwo = (MapFragment) getFragmentManager().findFragmentById(map_two);
        mapCount = 2;
        mapFragmentTwo.getMapAsync(this);
Run Code Online (Sandbox Code Playgroud)

然后我覆盖 onMapReady :

@Override
public void onMapReady(GoogleMap googleMap) {
    if (mapCount == 1){
    mMap = googleMap;
    LatLng vannes = new LatLng(47.66, -2.75);
    mMap.addMarker(new MarkerOptions().position(vannes).title("Vannes"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(vannes));

    } else if (mapCount == 2){
        mMap = googleMap;
        LatLng bordeaux = new LatLng(44.833328, -0.56667);
        mMap.addMarker(new MarkerOptions().position(bordeaux).title("Bordeaux"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(bordeaux));

    } 
}
Run Code Online (Sandbox Code Playgroud)

我的问题是两张地图显示相同的位置,而我想显示两个不同的位置。你知道怎么做吗?

谢谢,

亚历克斯

android google-maps mapfragment

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