标签: android-mapview

如何在Android中的MapView上绘制带边框的文本?

我正在尝试在Android上的MapView上绘制一些文本.文本的绘制很顺利,但是阅读文本非常困难,因为它是白色的,没有黑色边框(就像MapViews上自然出现的其他文字一样,表示城市,州和国家).我似乎无法想象如何用黑色边框绘制文本.有人知道怎么做吗?

这是我现在正在使用的那种代码(这只是我在其中一个叠加层中找到的示例代码):

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
    Paint textPaint = new Paint();
    textPaint.setARGB(255, 255, 255, 255);
    textPaint.setTextAlign(Paint.Align.CENTER);
    textPaint.setTextSize(16);
    textPaint.setTypeface(Typeface.DEFAULT_BOLD);

    canvas.drawText("Some Text", 100, 100, textPaint);

    super.draw(canvas, mapView, shadow);
}
Run Code Online (Sandbox Code Playgroud)

android google-maps android-mapview

33
推荐指数
3
解决办法
5万
查看次数

添加大量标记后,Google Maps Android API v2速度非常慢

我正在更新现有的Android应用以使用新的Google Maps Android API v2.我有大约2500个标记要添加到地图中.使用旧版本的API,我发现当有2500个标记时,地图的响应性是可怕的,所以我不得不通过添加位于地图当前可见区域的标记来解决它.

我希望使用新的API可以更快地使用2500个标记,但它仍然很糟糕,即使在Nexus 4上也是如此,我没有看到任何类型的聚类选项.

所以我的问题是:如何确定某个纬度/经度点是否包含在地图的可见区域内?

我在文档中查看了VisibleRegion,但到目前为止我还没有运气.任何帮助是极大的赞赏.

*旁注:即使使用iPhone 3gs,iOS MKMapView(谷歌地图或Apple地图)上的2500个标记也非常流畅和响应.我仍然无法理解为什么它在Android上如此之慢,即使使用最新最好的硬件也是如此.

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

31
推荐指数
2
解决办法
2万
查看次数

如何在Google Map API v2中处理地图的onTouch事件?

默认情况下,GoogleMap不会为地图拖动开始和拖动停止提供事件.我已经在这里报告了这个问题.

我想制作将使用普通事件并将其与之结合的自定义 .handleronTouchsetOnCameraChangeListener

但是我没能找到如何访问对象的onTouch事件GoogleMap.它不提供这样的回调.

我想知道如何在Google Map API v2中处理地图的onTouch事件?

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

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

具有lat/long值的Android GeoPoint

我想通过45.44334获得-23.4456的GeoPoint

我将什么值传递给GeoPoint的构造函数,因为它只需要Int.

android android-mapview

30
推荐指数
3
解决办法
4万
查看次数

Google Maps Android API V2会检查设备上是否安装了GoogleMaps

使用Google Maps Android API V2时,我会按照Google Play服务设置文档进行检查,以确保安装了Google Play服务,并在我的主要活动中使用以下代码:

@Override
public void onResume()
{
      checkGooglePlayServicesAvailability();

      super.onResume();
}

public void checkGooglePlayServicesAvailability()
  {
      int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
      if(resultCode != ConnectionResult.SUCCESS)
      {
          Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 69);
          dialog.setCancelable(false);
          dialog.setOnDismissListener(getOnDismissListener());
          dialog.show();
      }

      Log.d("GooglePlayServicesUtil Check", "Result is: " + resultCode);
  }
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,我注意到我已经存在的一些较旧的Android手机(大多数运行2.2)都缺少GooglePlayServices以及Google Maps应用程序本身.

LogCat将报告此错误:Google Maps Android API:Google地图应用程序丢失.

问题 - 如何在设备上对Google地图的可用性执行类似的检查?其次,如果用户已经安装了Google地图,我认为检查需要确保其安装的版本与Android Maps API的V2兼容.

更新 这是我的setupMapIfNeeded()方法,它在onCreate()的末尾被调用.这是我认为我想确定是否已安装Google地图并提醒用户的地方,请参阅else块:

private void setUpMapIfNeeded() 
{
    // Do a null check to confirm that we have not already instantiated the map.
    if …
Run Code Online (Sandbox Code Playgroud)

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

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

如何在android map api V2中制作标记?

我想实现平滑过渡以模拟在地图上移动的汽车标记.

是否可以在android map api v2中设置动画标记?

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

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

GestureDetector弃用问题

我有这个代码

itemizedOverlay = new MyItemizedOverlay(drawable,this);
itemizedOverlay.setGestureDetector(new GestureDetector(new MyGestureDetecor()));
Run Code Online (Sandbox Code Playgroud)

但在Eclipse中new GestureDetector标记为Deprecated.

我想避免使用已弃用的方法.

我怎么能解决这个问题?

什么是不弃用的表格?

android deprecated android-maps android-mapview

28
推荐指数
2
解决办法
2万
查看次数

在MapView中重新定位Google徽标

我的每个底角都有两个按钮MapView,部分遮挡了左下角的Google徽标.

为了符合API的条款和条件,我需要将Google徽标重新定位到更加明显的位置.即在按钮上方.

谷歌API文档声明谷歌徽标是在onDraw()方法中绘制的,MapView但我不知道如何正确覆盖它,因为谷歌地图是封闭源.

我能做到这一点在iPhone通过找到正确UIViewMKMapView's孩子,但我想不通,我怎么能在Android中做到这一点.

android google-maps android-mapview

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

在旋转和背面恢复MapView的状态

背景

我有一个更大的应用程序,我在使用新的Google Maps API时遇到了一些问题.我尝试用不同的问题描述它,但由于它看起来太复杂,我决定开始一个新项目,尽可能简单并尝试重现问题.所以这就是.

情况

我正在使用Fragments并希望放入MapView内部.我不想用MapFragment.我准备的示例项目可能不是很漂亮,但我试图让它尽可能简单,它必须包含原始应用程序中的一些元素(再次简化).我有一个Activity和我的习惯Fragment,MapView以编程方式添加.将Map包含一些点/ Markers.点击一个之后MarkerInfoWindow被示出并点击它引起下Fragment所示(与正被replace()在内容功能).

问题

我有两个问题:

  1. 当显示Mapwith 时,Markers屏幕旋转会导致Class not found when unmarshalling我的自定义MyMapPoint类错误- 我不知道为什么以及它意味着什么.

  2. 我点击Marker然后InfoWindow.在此之后我按下硬件后退按钮.现在我可以看到Map但没有Markers并且集中在0,0一点.

代码

主要活动

public class MainActivity extends FragmentActivity {

    private ArrayList<MyMapPoint> mPoints = new ArrayList<MyMapPoint>();

    @Override
    protected void onCreate(Bundle …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-mapview android-maps-v2 fragment-lifecycle

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

片段中的android MapView

我想MapView进入我的内心Fragment

这是我的FragmentLayoutxml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#17df0d"
    android:orientation="vertical" >

<com.google.android.gms.maps.MapView
    android:id="@+id/mapview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/textView1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="70dp" >

</com.google.android.gms.maps.MapView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我的AndroidManifest.xml档案

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="a.b.c.d"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="your_api_key" />
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />


    </application>

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <permission
        android:name="a.b.c.d.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" …
Run Code Online (Sandbox Code Playgroud)

java android google-maps android-mapview

26
推荐指数
3
解决办法
4万
查看次数