描述:我正在使用Google maps API V2.我已Android Reverse Geocoding在触摸位置实施.
问题:它抛出异常
try {
addresses = geocoder.getFromLocation(latitude, longitude,1);}
catch (IOException e)
{
e.printStackTrace();
if(AppConstants.DEBUG)Log.v(AppConstants.DEBUG_TAG," e.printStackTrace(): "+e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
我收到latitude并且longitude价值正确,但我无法理解为什么它会抛出exception,我也做了谷歌搜索,但它无能为力.
任何人都可以详细解释一下吗?
在Android地图上制作标记的颜色是什么?
有多少种颜色以及如何编写颜色代码?
Maps v2文档说明:
由于Google Maps Android API的第2版需要OpenGL ES版本2,因此您必须在AndroidManifest.xml中添加
<uses-feature>元素作为元素的子manifest元素:Run Code Online (Sandbox Code Playgroud)<uses-feature android:glEsVersion="0x00020000" android:required="true"/>`这会向外部服务通知该要求.特别是,它可以防止Google Play商店在不支持OpenGL ES版本2的设备上显示您的应用.
事实上,exception如果不在清单中,它会抛出一个.我不想在商店中过滤我的应用程序,我计划继续使用旧设备的旧地图,并且只有在运行时检测到所需的功能时才显示新地图,而不是在安装之前检测到.
那我该怎么做?是否必须是多个APKs不同的东西manifests?
我正在尝试学习android,并按照如何使用Google Maps API V.2的说明进行操作.但是,有关如何配置地图初始状态的说明(在developers.google.com中找到)建议在xml文件中定义名称空间,在本例中为"map".
下面的xml代码给出了错误"Unexpected namespace prefix"map" ".尝试定义片段标记内的xmlns:map会产生相同的错误,但使用"xmlns".
我显然在这里缺少一些基本的xml知识,有人可以帮助我吗?
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:map="http://schemas.android.com/apk/res-auto" <!-- Definition -->
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
map:cameraBearing="112.5"/> <!-- PROBLEM -->
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) xml android xml-parsing android-layout google-maps-android-api-2
也许我在这里遗漏了一些东西,但我无法在Play Services 6.5中使用新的Maps依赖项
我得到以下异常:
java.lang.NoSuchFieldError: No static field MapAttrs of type
[I in class Lcom/google/android/gms/R$styleable; or its superclasses
(declaration of 'com.google.android.gms.R$styleable' appears in
/data/app/com.kaching.merchant.dev1-1/base.apk)
at com.google.android.gms.maps.GoogleMapOptions
.createFromAttributes(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment
.onInflate(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
表现:
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my-awesome-key"/>
<uses-permission
android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
Run Code Online (Sandbox Code Playgroud)
Gradle文件:
compile 'com.google.android.gms:play-services-maps:6.5.+'
compile 'com.android.support:support-v4:21.0.2'
Run Code Online (Sandbox Code Playgroud)
布局:
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Run Code Online (Sandbox Code Playgroud)
这是坏了还是我做错了什么?
完整的捆绑推动了我超过dex限制,我宁愿不使用multidex
android google-play-services google-maps-android-api-2 android-gradle-plugin
我正在使用谷歌地图API V2,我已经InfoWindow为地图创建了一个自定义.Marker在这里InfoWindow我有一个按钮.
我的问题是无法将Onclicklistener /功能设置为该Button(Dummy).任何一个给我一些想法来解决这个问题:

这是代码片段:
public class MarkerView extends FragmentActivity implements OnMarkerClickListener,OnInfoWindowClickListener{
private GoogleMap mMap;
private Marker chennai;
private View infoWindow;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.basic_demo);
infoWindow=getLayoutInflater().inflate(R.layout.custom_info_contents, null);
mMap=((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
chennai=mMap.addMarker(new MarkerOptions().position(new LatLng(13.0810, 80.274)).anchor(2, 1).title("Android").snippet("Snippet").icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher)));
mMap.setInfoWindowAdapter(new CustomInfoAdapter());
mMap.setOnInfoWindowClickListener(null);
mMap.setOnMarkerClickListener(this);
Button dummy=(Button) infoWindow.findViewById(R.id.dummy);
dummy.setVisibility(View.VISIBLE);
dummy.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MarkerView.this, "Dummy Button", Toast.LENGTH_SHORT).show();
}
});
}
class CustomInfoAdapter implements InfoWindowAdapter{
@Override
public View getInfoContents(Marker arg0) {
displayView(arg0);
return …Run Code Online (Sandbox Code Playgroud) 授权失败.有关如何正确设置地图的信息,请参阅https://developers.google.com/maps/documentation/android/start.
确保以下内容与API控制台中的内容相对应:软件包名称:com.company.app,API密钥:AIzaSyC***OsTeo,证书指纹:4E5285***6BF53ED3
无法与Google服务器联系.建立连接时将进行另一次尝试.
无法加载地图.联系Google服务器时出错 这可能是一个身份验证问题(但可能是由于网络错误).
我知道关于这个问题还有更多的问题.但我似乎无法让地图视图起作用.结果是一个空的地图视图(带有缩放按钮).
我做了什么:
- 下载/安装了google-play-services
- 已添加google-play-services.jar到libs/
- Google Maps API v2在code.google.com/apis/console中启用
- 设置正确的权限
这就是我的清单的样子:
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<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="com.company.app.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.company.app.permission.MAPS_RECEIVE" />
<application ...>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyC***OsTeo" />
</application>
Run Code Online (Sandbox Code Playgroud)
Google API控制台api访问权限如下所示:
Key for Android apps (with certificates)
API key: AIzaSyC***OsTeo
Android apps: 4E:52:85:***6B:F5:3E:D3;com.company.app …Run Code Online (Sandbox Code Playgroud) 我使用适用于Android的Google Maps Api Version 2将MapFragment添加到我的应用程序中.
这个片段在速度和API可用性方面有很大改进.可悲的是,它还允许用双指手势旋转地图.我想禁用旋转,因为通常会识别这两个手指手势而不是缩放手势.
如何禁用地图旋转?
使用v2 API在Google地图上制作标记的最佳方法是什么?
我正在开发一个以地图为中心的游戏,我在这里跟踪人物的位置并在地图上显示它们以供彼此查看.随着人们的移动,我想要将一个标记从他当前的动态设置为最新的位置.每个人都有方向,所以我需要适当地旋转标记.
使用新版Google Maps API的最佳方法是什么?
android google-maps google-maps-mobile google-maps-android-api-2
我正在更新现有的Android应用以使用新的Google Maps Android API v2.我有大约2500个标记要添加到地图中.使用旧版本的API,我发现当有2500个标记时,地图的响应性是可怕的,所以我不得不通过添加位于地图当前可见区域的标记来解决它.
我希望使用新的API可以更快地使用2500个标记,但它仍然很糟糕,即使在Nexus 4上也是如此,我没有看到任何类型的聚类选项.
所以我的问题是:如何确定某个纬度/经度点是否包含在地图的可见区域内?
我在文档中查看了VisibleRegion,但到目前为止我还没有运气.任何帮助是极大的赞赏.
*旁注:即使使用iPhone 3gs,iOS MKMapView(谷歌地图或Apple地图)上的2500个标记也非常流畅和响应.我仍然无法理解为什么它在Android上如此之慢,即使使用最新最好的硬件也是如此.