Articles of 谷歌地图

自定义标记在某些设备上显示为白色(Google Maps v3 Android SDK)

我有一个Android应用程序自定义标记运行谷歌地图SDK。 一切工作正常我们的testing手机 – A7000,三星和其他。 但是,当我在Nexus 5或LG设备上运行应用程序时,一种自定义标记在地图上显示为白色。 虽然标记显示为白色,将执行所需的行为。 我们对此非常困惑,尤其是因为另一个自定义标记(非常相似)工作正常。 除了硬件之外,我们的testing手机和Nexus 5之间唯一的区别是Nexus运行的是Android 6.0,而我们的testing手机则运行的是5.x和4.x。 使用代码添加标记 for(i=0;i<latLngs.size;i++) { LatLng latLng=latLngs.get(i); Marker m = mMap.addMarker(new MarkerOptions().position(latLng).title("Title").icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))); } 用于更改标记图标 m.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.marker1)); 谷歌地图上显示像谷歌地图下面,一些标记变成白色,我使用循环来添加标记。

Android – 脱机,非vector,自定义地图

对于我正在处理的应用程序,我需要显示自定义栅格图像切片(不是基于vector,可能来自卫星图像),而且我需要离线。 我想使用MapView,但是我看不到一种方式告诉它使用自定义的离线地图切片,而不是从Google服务器上拉下数据。 我已经看到了一些替代scheme,但没有一个适合我的需要 MapDroyd似乎只支持基于vector的地图。 mapdroyd.com/ OSMDroid似乎使用开放街道地图; 我没有看到任何地方的文件,说明你可以使用自定义地图瓷砖。 code.google.com/p/osmdroid/ 还有第三种select,但是我的post被吃掉了,而且在我的历史中我找不到它。 我将不得不硬着头皮“自己滚”吗?

在任何设备上使用谷歌地图。 (没有谷歌播放)

我想在Android的谷歌地图上做一个可行性testing。 Google Maps Android V1 使用MapView时,我们必须添加 <uses-library android:name="com.google.android.maps" /> 在androidmenifest.xml中。 但据我所知,还有一些设备没有embedded这个库。 所以应用程序甚至不能安装在这些设备上。 Google Maps Android V2 在V2中,地图由extra / google_play_services的sdk支持。 这种方法更好,但它仍然依靠谷歌播放服务。 如果我卸载服务,将出现如下sreenshot警报消息。 而当我点击button,它坠毁,并抛出一个exception。 android.content.ActivityNotFoundException:未发现处理意图的活动{act = android.intent.action.VIEW dat = http://play.google.com/store/apps/details?id=com.google.android.gms flg = 0x80000 pkg = com.android.vending} 这是因为它无法find谷歌播放,这也是testing之前卸载,以处理意图。 但是意图可以由浏览器处理,而不指定pkg = com.android.vending。 所以..这是我的问题。 是否有可能通过我自己的应用程序拦截和处理上述意图? 所以我可以把它传给浏览器。 如果这是不可能的,什么是与地图开发Android应用程序的最佳解决scheme。 我知道有很多Android设备没有安装谷歌地图或谷歌播放,使用崩溃是不能接受的。

Google地图,无法启动导航,只有预览在那里

在我的应用程序中,我使用以下代码集开始Google导航。 String uri = "http://maps.google.com/maps?saddr="+ gpsLatitude + "," + gpsLongitude + "&daddr=" + updateAcceptedOfferDetailsData.getDestinationLat()+","+updateAcceptedOfferDetailsData.getDestinationLon(); Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)); intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); startActivity(intent); 我正在传递相应地址的源Lat / Lng和目标Lat / Lng。 问题: –这里我的问题是当导航屏幕打开没有select“开始”,而是有另一个选项“预览” ,这个问题不会发生在所有的地方,它工作正常的一些地方,但不是所有。 我可以知道整个混乱是什么? 谢谢

可以“覆盖”的大小与Android上的谷歌地图放大一起吗?

我已经能够使用“MapActivity”和“ItemizedOverlay”在Android上使用Eclipse在Google地图上绘制覆盖图。 但是当地图放大和缩小时,叠加层不会改变大小。 我希望叠加层在地图上“固定”,并与地图一起放大和缩小。 如何才能做到这一点? 我无法find教程来定义边界(例如,GPS坐标作为覆盖图像的拐angular)。 请提供链接,如果你知道一些。 和其他的方式呢? 非常感谢。

自定义OverlayItem不绘制

我创build了一个自定义OverlayItem类,这样我就可以拥有一种OverlayItem,它的Drawable标记将根据我传入的一些数据的状态进行设置。 我试图完成这个,我第一次尝试,利用OverlayItem类中的setMarker方法。 一旦没有工作,我试图重写getMarker方法,并让它返回相应的标记来表示数据。 这两个尝试都以地图上没有绘制任何东西而结束……但是如果它们被注释掉,标记绘制得很好(除非它们当然使用默认标记,这不是我想要的)。 这是我的自定义OverlayItem类的代码(我试过的注释掉的方法,他们没有工作): private class MyOverlayItem extends OverlayItem { private Context mContext; private MyData mData; public MyOverlayItem(GeoPoint point, MyData data, Context context) { super(point, data.getWhat(), data.getWhere()); this.mContext = context; this.mData = data; /*if(data.getTemp() > 200) this.setMarker(res.getDrawable(R.drawable.icon_data_hot_l)); else if(data.getTemp() > 100) this.setMarker(res.getDrawable(R.drawable.icon_data_neutral_l)); else this.setMarker(res.getDrawable(R.drawable.icon_data_frozen_l));*/ } /*@Override public Drawable getMarker(int stateBitset) { Resources res = […]

Android中的融合位置提供程序

我正在使用熔合位置提供程序开发应用程序。 我有个疑问。 为了定期获取位置,它使用requestLocationUpdates()。 但是从哪个来源获得WIFI或GPS或networking的位置。 在我的应用程序中,只有在WiFi处于开启状态时,才会定期获取位置信息。 当WiFi处于closures状态时,它不能得到位置(它应该从其他来源获取位置,不pipe是GPS还是networking),但是不能获取位置,或者我必须为GPS和networking编写监听器。 我不知道是什么问题。 谁能帮我。 而且,只有当所有提供商(Wifi,GPS,networking)可用或其他。 public void checkPlay(){ int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if (resp == ConnectionResult.SUCCESS) { locationClient = new LocationClient(this, this, this); locationClient.connect(); } else { Toast.makeText(this, "Google Play Service Error " + resp, Toast.LENGTH_LONG).show(); } } public void onConnected(Bundle arg0) { // TODO Auto-generated method stub if (locationClient != […]

如何解决setMyLocationEnabled权限要求?

在打开MapActivity时候,我想让我的地图专注于当前位置。 我有一个特定的行的问题: mMap.setMyLocationEnabled(true); 调用需要可能被用户拒绝的权限:代码应该明确地检查权限是否可用('checkPermission')或显式处理可能的'SecurityException'。 我该如何解决这个问题? 当我search这个问题时,我已经阅读了一些内容,但找不到有用的东西。 这是完整的代码: public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { private static final String FIREBASE_URL="https://haerev.firebaseio.com/"; private Firebase firebaseRef; private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps2); Firebase.setAndroidContext(this); firebaseRef = new Firebase(FIREBASE_URL); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); setUpMapIfNeeded(); } private void setUpMapIfNeeded() { // Do a […]

Android:如何加载KML

可能有人请告诉我,如果有一种方法来加载kml文件到谷歌地图在Android中。 谢谢

在Android中使用Google地图在触摸的位置添加标记

如何在地图上的特定位置添加标记? 我看到这个代码显示了触摸位置的坐标。 我想要一个标记popup或在每次触摸时显示在同一位置。 我该怎么做呢? public boolean onTouchEvent(MotionEvent event, MapView mapView) { if (event.getAction() == 1) { GeoPoint p = mapView.getProjection().fromPixels( (int) event.getX(), (int) event.getY()); Toast.makeText(getBaseContext(), p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6() /1E6 , Toast.LENGTH_SHORT).show(); mapView.invalidate(); } return false; }