Articles of 谷歌地图

定位Google地图v2放大Android中的控件

我已经创build了一个透明的操作栏,但缩放控件和“Google”这个词在它后面。 我不知道如何调整他们的位置。 Android手机上的默认Google地图应用程序已将它们置于底部操作栏上方。 是否可以重新放置缩放控件和“Google”这个词? 我知道你可以启用/禁用控制: map.getUiSettings().setZoomControlsEnabled(true);

AVD无法使用AVDtesting任何应用程序

我有一个非常奇怪的问题,我使用我的HTC One V运行4.0.3操作系统开发我的应用程序。 现在,应用程序在我的和其他几个随机的2.2和2.3和4+设备上运行的很好,但是在一些设备上,尽pipe他们有GooglePlayStore,应用程序启动并加载,但是不会在其他设备上显示地图,尽pipe他们在应用程序上有GPStore崩溃说GPStore /服务不存在。 我试图在AVD Devies上testing应用程序,但是没有安装GooglePlayStore。 我尝试了Android 4.0仿真器上的Google Play ,将GPStore推向了他们,但没有成功。 我的droid SDK已经完全更新: 我编译我的应用程序 在我的主要活动中,我检查是否存在Google Play服务/商店,以确定是否可以使用GoogleMaps: public class Map extends FragmentActivity implements Observer { private MapAgent agent; private Locator locator; private Spinner spinner; private Button gps; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get a new instance of Locator agent locator = new Locator(); […]

如何以编程方式添加地图片段

我想以编程方式将此xml片段添加到其他片段。 可能吗? <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment" />

Android群集和标记点击

我在地图上使用android集群实用程序,并为mClusterManager.setOnClusterItemClickListener()实现了由群集库处理的所有标记的onclick监听器。 因为我也希望某些标记始终是非聚集的,所以我还添加了一些标记而不使用mClusterManager,但是直接使用了地图的mMap.addMarker(),这样我就可以确定它们从来没有聚集在地图上。 我的问题是,我不能拦截这些标记点击(总是非集群的),因为我已经使用mMap.setOnMarkerClickListener(mClusterManager)来处理点击的集群标记。 有没有办法听到点击聚集标记和聚类库不处理的点击标记? 还是有办法指定集群pipe理器永远不会聚集一些标记? 在这种情况下,我将不必处理那些不同的点击监听器,因为所有标记都将使用群集实用程序显示。 谢谢

在Android MapView中绘制独立于缩放级别的形状

我需要绘制形状,就像使用Android的MapView在Google地图上创build自定义地图一样 。 换句话说,如果我在地图上绘制一个形状,当我缩小时,它应该缩小,覆盖地图的相同区域,而不pipe缩放级别如何。 遵循Android参考的示例: @Override public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { super.draw(canvas, mapView, shadow); //—translate the GeoPoint to screen pixels— Point screenPts = new Point(); mapView.getProjection().toPixels(p, screenPts); Paint boxPaint = new Paint(); boxPaint.setColor(android.graphics.Color.WHITE); boxPaint.setStyle(Paint.Style.FILL); boxPaint.setAlpha(140); canvas.drawCircle(screenPts.x, screenPts.y, 20, boxPaint); return true; } 这会在地图上显示一个白色圆圈,但是如果缩小,则圆圈的大小相同。 也许使用canvas不正确的做法? 我需要像Google地图突出显示街区或城市的内容: 有任何想法吗? 提前致谢!

从给定的地址名称获取纬度和经度。 不是地理编码器

我有一个地址名称,我想获得一个精确的经度和纬度。 我知道我们可以使用Geocoder的getFromLocationName(address,maxresult)来获取 。 问题是,我得到的结果始终为空 – 与我们通过https://maps.google.com/获得的结果不同。 与Geocoder不同,这总能让我得到一些结果。 我也尝试了另一种方式: "http://maps.google.com/maps/api/geocode/json?address=" + address + "&sensor=false" (这是一个链接 !)它比地理编码器提供更好的结果,但经常返回错误(java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer) 。这是无聊的。 我的问题是 :如何通过在Java代码中searchhttps://maps.google.com/获得相同的latlong结果? 附加 :其中是关于使用“ http://maps.google.com/maps/api/geocode/json?address=”+ address +“&sensor = false”的api文档

如何在Google Places API中获取针对Android自动完成预测的国家/地区特定结果?

我想获得特定国家的search结果。 我尝试设置经度和纬度,但可能包括其他国家的结果靠近所需的国家! 我已经看到其他问题,build议在请求URL(我已经在这里看到)通过&components=country:COUNTRY_NAME 。 但是我想通过Google Places API的请求。 我正在使用以下方法: Places.GeoDataApi.getAutocompletePredictions(mGoogleApiClient,constraint.toString(),mBounds,mPlaceFilter); 但是我找不到任何可以通过国家名称来获得特定国家的结果的方法。 (我已经尝试通过请求URL中的国家名称,它正在工作。)但如何通过使用Places.GeoDataApi.getAutocompletePredictions()方法实现相同? 或者有没有其他的方式来实现这一点,而不需要在请求URL中发送国家/地区名称?

为Google Map v2片段创buildOnDragListener

我正在尝试为Google地图片段设置onDrag侦听器,但无法触发拖动事件。 由于地图不支持直接拖动事件,我正在试图为视图实现一个拖动监听器。 我知道onMarkerDrag事件,但是这并不是我的好处,因为我不想移动标记。 陷印地图拖动事件的原因是双重的: 首先检测用户是否已经平移了地图。 如果他们没有,我喜欢在屏幕上保留他们的位置,如果不在地图上,他们的位置是animation的。 如果他们已经摆脱了地图,我认为他们知道他们想看什么,并强制屏幕上的位置。 (这看起来应该包含在API中) 陷印的第二个原因是允许用户在地图上绘制线条和多边形。 我可以使用onTap事件(添加点)来做到这一点,但我希望能够让他们写意。 我的代码如下所示: 主要活动: mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); setUpMapIfNeeded(); mMapView = findViewById(R.id.map); myMapDragListener = new MapDragListener(); mMapView.setOnDragListener(myMapDragListener); 听众: public class MapDragListener implements OnDragListener { /** * */ public MapDragListener() { super(); say.logCat("MapDragListener: I'm ALIVE!!!!"); } private AkamaiAnnounce say = new AkamaiAnnounce(); private boolean inDrag; private boolean hasPanned=false; […]

在Android中取消已经打开的Toast

我目前正在开发Android应用程序,并且一直在关注如何使用和改进Google地图应用程序的本教程 。 我已经设法在屏幕上显示地图,通过触摸我可以得到一个位置的地址(通过反向地理编码),并显示一个Toast 。 但是,这是我的问题 – 当你点击地图上的连续数次时,你会一个接一个Toast.LENGTH_LONG ,每个人都会花费他的时间(在我的情况下, Toast.LENGTH_LONG )消失。 我想让应用程序自动closures旧的烤面包,并显示一个新的烤面包,点击新的地址。 在其他资源,我发现我应该使用toast.cancel()方法为此目的,但我遇到麻烦使用它 – 我已经overrided onTouchEvent – 我怎么能检测到有一个新的地图,而toast显示? 或者,也许你会build议我更好地隐藏已经开放的toast ? 我已经尝试使我的Toast地址成为全球地址,但是这也不起作用。 这是我的代码为应用程序: @Override public boolean onTouchEvent(MotionEvent event, MapView mapView) { //—when user lifts his finger— if (event.getAction() == 1) { GeoPoint p2 = mapView.getProjection().fromPixels((int) event.getX(), (int) event.getY()); Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault()); try { List<Address> […]

我在哪里可以findGoogle Play服务归属文字?

Google地图文档说,您必须将Google Play服务归属地文字作为“法律声明”的一部分。 可以通过调用GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo来获取属性文本。 但GooglePlayServicesUtil在Android 2.2之前不可用。 我的应用程序是专为2.0,那么这是什么文字,我在哪里得到它?