标签: google-maps-android-api-2

"IBitmapDescriptorFactory未初始化"错误

我正在尝试在Google Maps Android API v2中使用自定义图标获取标记.我刚刚更改了Google提供的一个示例.我.icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow))在方法中添加了RawMapViewDemoActivitysetUpMap().

private void setUpMapIfNeeded() {
    if (mMap == null) {
        mMap = ((MapView) findViewById(R.id.map)).getMap();
        if (mMap != null) {
            setUpMap();
        }
    }
}

private void setUpMap() {
    mMap.addMarker(new MarkerOptions()
        .position(new LatLng(0, 0))
        .title("Marker")
        .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));
}
Run Code Online (Sandbox Code Playgroud)

但我总是得到"IBitmapDescriptorFactory未初始化".

12-18 15:40:54.356: E/AndroidRuntime(12591): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mapdemo/com.example.mapdemo.RawMapViewDemoActivity}: java.lang.NullPointerException: IBitmapDescriptorFactory is not initialized
12-18 15:40:54.356: E/AndroidRuntime(12591):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
12-18 15:40:54.356: E/AndroidRuntime(12591):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
12-18 15:40:54.356: E/AndroidRuntime(12591):    at android.app.ActivityThread.access$600(ActivityThread.java:130)
12-18 15:40:54.356: E/AndroidRuntime(12591):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
12-18 15:40:54.356: E/AndroidRuntime(12591): …
Run Code Online (Sandbox Code Playgroud)

android google-maps-android-api-2

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

如何在Google Maps for Android API v2上显示我的位置

对于这方面的答案,我看起来很高很低,没有人,在任何论坛问题上都能提供帮助.我搜索过这些教程.该API指南说:

仅当启用"我的位置"图层时,"我的位置"按钮才会显示在屏幕的右上角.

所以我一直在寻找这个我的位置图层,但一直找不到任何东西.如何在Google地图上显示我的位置?

android geolocation google-maps-android-api-2

57
推荐指数
5
解决办法
13万
查看次数

居中位图标记(Google Maps Android API v2)

当我从自定义位图添加标记时,标记不会在我指定的点居中.

我是这样添加的:

    // ID tramo
    final int tramoId = tr.getId();
    // Nodos
    final Nodo[] nodos = tr.getNodos();

    final PolylineOptions p = new PolylineOptions();
    MarkerOptions m = new MarkerOptions();
    // Seteamos posicion de linea y marker
    m.position(semisuma(nodos));
    for (final Nodo n : nodos) {
        p.add(n.getLatLng());
    }
    // Color de linea y marker
    BitmapDescriptor icon = null;
    if (tr.getCapacidad() == 0) {
        p.color(0xFF000000);
        m = null;
    } else if (tr.getCapacidad() - tr.getPlazasOcupadas() == 0) {
        p.color(0xEEFF0000);
        final TextDrawable drawable = new TextDrawable(0, …
Run Code Online (Sandbox Code Playgroud)

android centering android-drawable google-maps-android-api-2

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

java.lang.noclassdeffounderror:com.google.android.gms.R $ styleable

我正在使用谷歌地图创建一个Android应用程序.这是代码:

MapFragActivity.java

 import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import com.google.android.gms.maps.GoogleMap;
    import com.google.android.gms.maps.SupportMapFragment;

    public class MapFragActivity extends FragmentActivity {

    private GoogleMap map;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map_frag);

        map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                .getMap();
     }
    }
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.him.mapfrag_rnd"
        android:versionCode="1"
        android:versionName="1.0" >

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


        <permission
            android:name="com.him.mapfrag_rnd.permission.MAPS_RECEIVE"
            android:protectionLevel="signature" />

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

          <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true" />


        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name=".MapFragActivity"
                android:label="@string/title_activity_map_frag" > …
Run Code Online (Sandbox Code Playgroud)

google-maps-android-api-2

53
推荐指数
6
解决办法
8万
查看次数

谷歌地图中的自定义标记在android与矢量资产图标

我们如何用矢量资产文件实现地图标记图标,google以这样的方式显示它,以编程方式:

地图

更新:

map.addMarker(new MarkerOptions()
    .position(latLng)
    .icon(BitmapDescriptorFactory.fromResource(R.drawable.your_vector_asset))
    .title(title);
Run Code Online (Sandbox Code Playgroud)

这在处理矢量资产时不起作用.提出问题的主要原因.上面代码的错误:

java.lang.IllegalArgumentException:无法解码图像.提供的图像必须是位图.

android google-maps-markers google-maps-android-api-2

53
推荐指数
6
解决办法
4万
查看次数

使用Google Maps API v2获取行车路线

我想在两个位置之间找到行车方向:

LatLng(12.917745600000000000,77.623788300000000000)
LatLng(12.842056800000000000,7.663096499999940000)
Run Code Online (Sandbox Code Playgroud)

我试过的代码:

Polyline line = mMap.addPolyline(new PolylineOptions().
    add(new LatLng(12.917745600000000000,77.623788300000000000),
    new LatLng(12.842056800000000000,7.663096499999940000))
       .width(5).color(Color.RED));
Run Code Online (Sandbox Code Playgroud)

但这在两点之间划了一条直线.

有没有其他方法/方法来获得这两点之间的行车路线.

java android google-maps directions google-maps-android-api-2

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

ScrollView中的Google Maps API v2 SupportMapFragment - 用户无法垂直滚动地图

我正在尝试将Google地图放在滚动视图中,以便用户可以向下滚动其他内容以查看地图.问题是这个滚动视图占用了所有垂直触摸事件,因此地图的UI体验变得非常奇怪.

我知道在谷歌地图的V1中,您可以覆盖onTouch或setOnTouchListener以在MotionEvent.ACTION_DOWN上调用requestDisallowInterceptTouchEvent.我试图用V2实现类似的技巧无济于事.

到目前为止,我尝试过:

  • 覆盖SupportMapFragment,在onCreateView中,为View设置触摸侦听器
  • 调用SupportMapFragment实例的.getView(),然后调用setOnTouchListener
  • 环绕相对布局或框架布局,使用透明视图或图像视图遮罩片段

这些都没有解决滚动问题.我在这里错过了什么吗?如果有人在滚动视图中有一个地图的工作示例,请您分享代码示例吗?

android scala google-maps-android-api-2

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

如何在路线google maps v2 android上绘制交互式Polyline

我有以下代码为我绘制折线并且工作正常,但问题是它没有绘制交互式折线,绘制的线条缺少一些像素!

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;

import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class testRoute extends FragmentActivity implements OnClickListener {

    private GoogleMap myMap;
    Polyline line; …
Run Code Online (Sandbox Code Playgroud)

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

50
推荐指数
4
解决办法
11万
查看次数

在Android Studio中使用Gradle管理Google Maps API密钥

我知道Gradle很强大,我想管理用于开发/生产Google Maps的API密钥

目前我总是需要手动注释一行并取消注释另一行以使其工作.有没有办法在Gradle中自动执行一些自定义发布配置?

<!-- MapView v2 API -->
<uses-library android:name="com.google.android.maps" />
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="[MY_DEV_KEY]" />
<!-- PROD
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="[MY_PROD_KEY]" />
-->
Run Code Online (Sandbox Code Playgroud)

android key gradle google-maps-android-api-2 android-studio

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

如何从地图中删除所有折线

以下

如何在两个标记之间绘制路径

我不得不在两个标记之间添加许多折线,以形成一条路径.

其中一个标记是可拖动的,让我们说源是可拖动的.

因此,当用户开始拖动标记时,必须擦除先前绘制的路径,并且必须绘制新源和目标之间的新路径.

我能够绘制新路径,但是如何删除上一条路径呢?

这是绘制路径的方式:

    for (int z = 0; z < list.size() - 1; z++) {
        LatLng src = list.get(z);
        LatLng dest = list.get(z + 1);
        Polyline line = map.addPolyline(new PolylineOptions()
                .add(new LatLng(src.latitude, src.longitude),
                        new LatLng(dest.latitude, dest.longitude))
                .width(2).color(Color.RED).geodesic(true));
    }
Run Code Online (Sandbox Code Playgroud)

我能得到的一个解决方案是

map.clear();

要清除所有折线,标记等..并再次添加标记,然后绘制路径.

但是一旦我开始拖动,标记就会被清除,因此在地图上看不到:(

谢谢

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

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