标签: android-maps

Map API v2授权失败

好吧,这是我用这个例子做的

  1. 通过keytool获得调试密钥(确保调试密钥在首选项 - > Android - > Build中由eclipse使用)
  2. 通过命令生成密钥

    $ keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android

  3. 复制粘贴在Google API控制台+我的包名称中的SHA1总和:

    总和; com.my.package

  4. 在Google API控制台的同一项目中启用了Google Map API v2

  5. 将其复制到元数据中的Manifest应用程序.

  6. 通过SDK管理器下载并导入google-play-services_lib项目并将其作为库项目引用.以及ActionBarSherlock.

  7. 在启动之前,我确保GooglePlayServices可用.

表现:

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

<permission
    android:name="com.my.package.permission.MAPS_RECEIVE"
    android:protectionLevel="signature"/>

<uses-permission android:name="com.my.package.permission.MAPS_RECEIVE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)

应用:

<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="debug_key"/>
Run Code Online (Sandbox Code Playgroud)

还添加了proguard的东西,但我现在没有混淆.

DrugstoresMapActivity扩展了SherlockFragmentActivity

<?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">

    <fragment
        android:id="@+id/map_fragment"
        class="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

project.properties

target=android-17
android.library.reference.1=../google-play-services_lib
android.library.reference.2=../ActionBarSherlock
Run Code Online (Sandbox Code Playgroud)

ActionBarSherlock在libs中有android-support-v4,如果重要的话,不是主项目.

StartupActivity确保只有可用的服务才会启动DrugstoresMapActivity

private void attempt() { …
Run Code Online (Sandbox Code Playgroud)

android google-maps-api-2 android-maps

14
推荐指数
1
解决办法
7670
查看次数

如何在MapActivity中的标记上方显示气球?是不是有小部件?

我不明白这一点,为什么我要编写这么多代码.就像,我不想关心......

  • 气球的位置(我只想分配一个地理位置)
  • 基本气球的布局(稍后我可能想要实现基于xml的布局)
  • 显示的气球数量(一次只显示一个)
  • 气球的打开/关闭行为(当另一个bollon被标签时关闭)

更新

解决了!请参阅下面的答案......

android google-maps android-maps

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

V2 Maps Library是否需要ACCESS_NETWORK_STATE权限?

我在我发布的应用中使用了Android V2 Google地图库(Google Play服务).我一直看到Google Play中出现的零星异常似乎表明支持地图片段偶尔会尝试检查网络状态.但是,库文档未提及此权限是必需的.我不直接在我的应用程序中检查网络状态,所以我没有声明此权限.因此,SecurityException在支持地图片段膨胀时,有时会抛出a :

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.foo/com.foo.ui.TransactionDetailActivity}: android.view.InflateException: Binary XML file line #327: Error inflating class fragment
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
    at android.app.ActivityThread.access$600(ActivityThread.java:141)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5039)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #327: Error inflating class fragment
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:459) …
Run Code Online (Sandbox Code Playgroud)

android android-maps android-permissions

12
推荐指数
1
解决办法
765
查看次数

打开街道地图工作离线android

我是Open Street Map的新手.我做了一些研究,发现我们可以将地图下载并存储到一个文件夹中.但我没有找到任何提供离线Open Street Map的教程或示例.有人可以提供一步一步的教程,请执行离线开放街道地图的指南.我正在关注此示例http://android-coding.blogspot.com/2012/06/example-of-implementing-openstreetmap.html但现在我想在没有连接时使其可用.

android openstreetmap android-maps osmdroid android-maps-v2

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

如何绘制一个小标记图像并不断刷新其在我的CUSTOM地图图像上的位置? - Android

我目前正在开发一种跟踪系统,用于绘制用户在房间内或移动窗口内的移动轨迹.

现在我已经设法将我的地图导入到应用程序中,地图可以自由缩放和移动.下一步是放置一个标记以指示地图上的用户位置,并在地图上移动标记.(就像漂浮在地图上一样)

我在某个地方阅读并认为这可以完成MyLocationOverlay,但大多数在线的例子都是将它应用到google map.但是,在我的情况下,我的地图不是google map,这是我的OWN地图.(地图可以是我房间的地图,也可以是我自己绘制的地图!)

我已经完成了跟踪算法,即我知道在哪里放置我的标记图像.

因此,唯一的问题仍然是如何在地图图像上显示标记图像.

在细节上,我有一个自定义的视图MapView,如下所示:

package com.example.drsystem;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.view.View;

public class MapView extends View {

    private static final int INVALID_POINTER_ID = -1;

    private Drawable mImage;
    private float mPosX;
    private float mPosY;

    private float mLastTouchX;
    private float mLastTouchY;
    private int mActivePointerId = INVALID_POINTER_ID;

    private ScaleGestureDetector mScaleDetector;
    private float mScaleFactor = 1.f;

    public MapView(Context …
Run Code Online (Sandbox Code Playgroud)

android android-maps android-canvas android-mapview

12
推荐指数
1
解决办法
1810
查看次数

添加Overlay到OSMDROID

这段时间我一直在苦苦挣扎.我想在我的地图上添加叠加层.我正在使用开源OSMdroid.但我得到的例子是从一个角落到另一个角落的直线红线.我的目标是在我的geoPoint设置中添加一些图标.

这是我的代码:

 package osmdemo.demo;

import java.util.List;

import microsoft.mappoint.TileSystem;

import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapController;
import org.osmdroid.views.MapView;
import org.osmdroid.views.MapView.Projection;
import org.osmdroid.views.overlay.Overlay;
import org.osmdroid.views.overlay.ScaleBarOverlay;
import org.osmdroid.views.util.constants.MapViewConstants;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Rect;
import android.location.LocationManager;
import android.os.Bundle;

public class map extends Activity implements MapViewConstants
{

    /** Called when the activity is first created. */

    protected static final String PROVIDER_NAME = LocationManager.GPS_PROVIDER;
    MapController mapController;
    MapView mapView;
    ScaleBarOverlay mScaleBarOverlay;
    private MapOverlay mmapOverlay = null;
    private LocationManager mLocMgr; …
Run Code Online (Sandbox Code Playgroud)

android openstreetmap android-maps osmdroid

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

支持库:FragmentTransaction动画不起作用

我正在使用Peter Doyle的android-support-v4-googlemaps支持库来实现同时使用Fragments和Google Maps的Activity,并且似乎无法使FragmentTransaction动画生效.我尝试过使用该setCustomAnimations(int enter, int exit)方法以及setTransition(int transit)方法,但无济于事.任何人都可以让动画工作,或者也有动画制作工作的问题?

我试过的一些动画:

setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)

setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out)

setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right)
Run Code Online (Sandbox Code Playgroud)

android android-maps android-animation android-fragments

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

android - Geocoder.getFromLocationName()在ICS设备中不起作用

我有两个设备.一个是HTC WildFire S,另一个是HTC 1V.我Geocoder.getFromLocationName()在我的应用程序中使用了它.它在HTC野火S中成功运行.但在HTC 1V我得到以下错误.为什么会来?我怎么解决这个问题?请任何人帮助我.

Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault()); 
//s is the address
List<Address> addresses = geoCoder.getFromLocationName(s, 5); //Here i got the following Exception.
Run Code Online (Sandbox Code Playgroud)

错误

06-18 16:28:17.933: W/System.err(4960): java.io.IOException: Service not Available
06-18 16:28:17.953: W/System.err(4960):at android.location.Geocoder.getFromLocationName(Geocoder.java:178)
Run Code Online (Sandbox Code Playgroud)

位置标签

在此输入图像描述

android geocoding android-maps

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

Google Maps V2在Android 2.2上显示空白屏幕

我尝试了关于Android Maps V2快速入门的教程 但是当我运行应用程序时,会显示一个空白的地图屏幕.我的手机使用Android 2.2.1.

在此输入图像描述

这是logcat中显示的内容:

12-07 18:07:52.479: W/dalvikvm(1654): VFY: unable to resolve instance field 24
12-07 18:07:53.129: W/dalvikvm(1654): Unable to resolve superclass of Lmaps/a/du; (411)
12-07 18:07:53.129: W/dalvikvm(1654): Link of class 'Lmaps/a/du;' failed
12-07 18:07:53.139: W/dalvikvm(1654): Unable to resolve superclass of Lmaps/a/ej; (2363)
12-07 18:07:53.139: W/dalvikvm(1654): Link of class 'Lmaps/a/ej;' failed
12-07 18:07:53.139: W/dalvikvm(1654): Unable to resolve superclass of Lmaps/j/k; (2379)
12-07 18:07:53.139: W/dalvikvm(1654): Link of class 'Lmaps/j/k;' failed
12-07 18:07:53.149: E/dalvikvm(1654): Could not find class 'maps.j.k', …
Run Code Online (Sandbox Code Playgroud)

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

11
推荐指数
1
解决办法
9046
查看次数

从android中的地址获取经度和经度

我试图从地址获得纬度和经度,问题是...当我只提供城市名称而不是给我正确的纬度和经度,当我给出完整的地址(如州,城市名称,街道号)比它不给我正确的纬度和经度......

谢谢你的合作回应......

我的代码是......

//String addressStr = "faisalabad";/// this give me correct address
        String addressStr = "Sainta Augustine,FL,4405 Avenue A";
          Geocoder geoCoder = new Geocoder(MapClass.this, Locale.getDefault());

          try {
              List<Address> addresses =
          geoCoder.getFromLocationName(addressStr, 1); 
              if (addresses.size() >  0) {
                 latitude = addresses.get(0).getLatitude(); longtitude =
          addresses.get(0).getLongitude(); }

          } catch (IOException e) { // TODO Auto-generated catch block
          e.printStackTrace(); }


        pos = new LatLng(latitude, longtitude);
        googleMap.addMarker(new MarkerOptions().icon(
                BitmapDescriptorFactory
                        .defaultMarker(BitmapDescriptorFactory.HUE_RED))
                .position(pos));
        googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(pos, 15));
        googleMap.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
Run Code Online (Sandbox Code Playgroud)

android geocoding android-maps android-maps-v2

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