android googlemap问题,求帮助...

2019-03-25 13:32|来源: 网路

地图出现一格一格的叉叉,当执行以下三种情况的时候都会出现这问题
1、移动地图时
2、点击标记时
3、地图定位改变位置时
// 当用户点击标记时,执行
	@Override
	protected boolean onTap(int index) {
		Toast.makeText(mContext,"点击onTab方法", Toast.LENGTH_LONG).show();
		MapView.LayoutParams geoLP = (MapView.LayoutParams)mContext.popView.getLayoutParams();
		geoLP.point = mOverlays.get(index).getPoint();
		mContext.mMapView.updateViewLayout(mContext.popView, geoLP);
		mContext.popView.setVisibility(View.VISIBLE);
		textView1 = (TextView) mContext.findViewById(R.id.map_bubbleTitle);
		textView2 = (TextView) mContext.findViewById(R.id.map_bubbleText);
		textView1.setText(mOverlays.get(index).getTitle());
		textView2.setText(mOverlays.get(index).getSnippet());
	
		mContext.popView.setVisibility(View.VISIBLE);
		RelativeLayout iv = (RelativeLayout) mContext.popView.findViewById(R.id.map_bubblebtn);
		iv.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				mContext.popView.setVisibility(View.GONE);
			}
		});
		return true;
	}

private void initPopView() {
		Toast.makeText(MainActivity.this, "实例化popview的方法", Toast.LENGTH_LONG).show();
		if (null == popView) {
			popView = getLayoutInflater().inflate(R.layout.overlay_popup, null);
			mMapView.addView(popView, new MapView.LayoutParams(
					MapView.LayoutParams.WRAP_CONTENT,
					MapView.LayoutParams.WRAP_CONTENT, null,
					MapView.LayoutParams.BOTTOM_CENTER));
			popView.setVisibility(View.GONE);
		}

	}

问题补充:
Rainbow702 写道
改用 Overlay 来试试呢

我只写了这么多代码当移动地图的时候为什么还是会有叉叉呢?
纠结啊
public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		mMapView = (MapView) findViewById(R.id.mapview);
		//设置显示模式
		mMapView.setTraffic(false);
		mMapView.setSatellite(false);
		mMapView.setStreetView(true);
		//设置缩放
		mMapView.setBuiltInZoomControls(true); 
		mapController = mMapView.getController();
		mapController.setZoom(intZoomLevel);
	}


问题补充:
Rainbow702 写道
引用
我只写了这么多代码当移动地图的时候为什么还是会有叉叉呢?

这个有点奇怪啊,你不你把缓存清了再试试?或者直接把应用卸载之后再重新安装吧。我当时开发的时候,地图都显示的好好的哎。

请问一下那个路线轨迹怎么画?就是有多个标记点怎么把它们用线连接起来?有源码最好了,谢谢!java刚接触android没多久啊

问题补充:
Rainbow702 写道
引用
请问一下那个路线轨迹怎么画?
在前期的Android中,GOOGLE提供了这种线路规则的API的,但貌似在2.0以后就不提供了,自己想画的话好像没有那么简单啊。我之前的项目虽然没有让我画这种线路,但我在GOOGLE上搜索别的问题的时候,有碰到过有人写过的,你可以去查看看。

谢谢你的多次帮助啊!android这东西听别人说容易,自学起来但不容易啊

相关问答

更多
  • 对于您当前的需求,最简单的解决方案是将每个用户位置发布到中央服务器,并从服务器检索其他用户的位置。 您可以在应用服务器中添加逻辑,仅从附近的人返回位置,使用您自己的标准来定义附近的含义。 建议使用REST样式的Web服务。 您可以设置自己的服务器或使用其他集成解决方案,如openshift,google引擎,解析等。 For your current needs, the easiest solution it's to post each user location to a central server ...
  • 感谢Chitrang上面的评论,我得到了解决方案。 首先我补充说: townList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView adapter, View view, int position, long arg) { Log.d("Hello","Why?"); } }); 然后,当他提到我 ...
  • getMapAsync返回类型为void,并且您正试图分配它 googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById( R.id.mapFragment)).getMapAsync(this); 到googleMap 。 这没有多大意义。 只调用getMapAsync ((SupportMapFragment) getSupportFragmentManager().fin ...
  • 据我所知,不可能在同一个应用程序中同时使用这两个API。 即使您可以这样做,也不能将Google Map API V1与其MapView和MapActivity对象一起使用,因为Google已弃用此API,您无法获得新的API密钥。 这可能是您只看到一个网格而不是一个地图的原因。 因此鼓励并建议您将应用程序移至仅使用Google Maps API V2 。 As far as I know it is not possible to use both API's in the same applicatio ...
  • 这里的问题是在UI线程外调用getTile (和你的render方法)。 这将导致异常,您将看不到它,因为它可能由调用getTile的代码静默处理。 这真的很糟糕它没有崩溃,所以有人可以在gmaps api问题上发布一个问题。 尝试在try-catch中包含对getProjection调用以查看它。 因为您不应该在主线程之外与GoogleMap交互,所以您必须找到另一种方法来实现,您想要实现的目标...... 无论如何,我可以想象没有充分的理由需要在getTile调用getProjection 。 也许另一 ...
  • 在开始使用之前允许加载Map ,否则您将得到null 。 当地图准备好使用时,您有onReady回调。 protected void setFragment(){ FragmentManager fm = getFragmentManager(); MapFragment mapFragment = MapFragment.newInstance(); fm.beginTransaction().replace(R.id.fragment_container, mapFragmen ...
  • 你可以使用GoogleMap.getMyLocation()来做到这一点。 请注意,此方法已弃用,建议的替代方法是通过FusedLocationProvider自行获取位置。 另外请注意,使用FusedLocationProvider进行位置跟踪是在应用程序之间共享的,如果多个应用程序正在请求位置,则只会执行一次,然后发送给所有应用程序。 这意味着如果Google地图等其他应用已在请求位置更新,则您的应用不会耗尽更多电量。 You can use GoogleMap.getMyLocation() for ...
  • 你有 android:minSdkVersion="12" 所以你需要改变 public class Settings extends FragmentActivity{ 至 public class Settings extends Activity{ 此外,最好在初始化谷歌地图对象之前检查谷歌播放服务的可用性。 来自文档 公共最终GoogleMap getMap() 获取与此片段包装的视图关联的基础GoogleMap。 返回GoogleMap。 如果片段的视图尚未准备好,则为空。 如果片段 ...
  • 发现了问题 android:name="com.google.android.gms.maps.MapFragment" /> 应该: android:name="com.google.android.gms.maps.SupportMapFragment" /> 并在我的片段而不是: var mapFragment = (SupportMapFragment)Activity.SupportFragmentManager.FindFragmentById(Resource.Id.map); ...
  • 我想你的onMapReady函数根本没有触发。 所以你的pinEvents函数也没有被触发。 你必须调用getMapAsync()来触发onMapReady()你在onCreate中已经完成了这里仍然没有创建视图,所以在onCreateView中这样做。 我建议你改变你的类的名称,因为有与谷歌地图相关的MapFragment和SupportMapFragment以避免混淆。 如果您使用支持片段,则需要更改代码,如下所示。 SupportMapFragment mapFragment = ((Support ...