在我的应用程序中,我有一些对象,它们的位置使用标记显示在地图上.问题是,我发现处理标记点击的唯一方法是
googleMap.setOnMarkerClickListener(new ... {
@Override
public void onMarkerClick(Marker marker) {
// how to get the object associated to marker???
}
})
Run Code Online (Sandbox Code Playgroud)
换句话说,我得到Marker对象,而我唯一的接口允许我只设置MarkerOptions.
有什么方法可以将Marker与一个对象相关联?
绩效提升:
以前我将所有图像保存在drawable文件夹中,这可能是地图首次加载缓慢的原因,当在屏幕上绘制标记时,图像可能不适合屏幕大小.现在我保存了图像drawable-mdpi,drawable-hdpi等等,应用程序比以前更顺畅.希望能帮助到你
原始问题:
我在片段中创建了一个地图,源代码可以在下面找到.
第一次加载时,地图片段缓慢.如果我再去任何其他片段并再次点击地图片段,它就会加载得很快而且没有slug.
谁能告诉我这里发生了什么?谢谢!
fragment_map.xml,id是 map
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.SupportMapFragment"/>
Run Code Online (Sandbox Code Playgroud)
MyMapFragment.java(包含onCreateView和setUpMapIfNeeded)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
try {
rootView = inflater.inflate(R.layout.fragment_map, container, false);
} catch (InflateException e) {
/* map is already there, just return view as it is */
Log.e(TAG, "inflateException");
}
setUpMapIfNeeded();
return rootView;
}
public void setUpMapIfNeeded() …Run Code Online (Sandbox Code Playgroud) 我想实现平滑过渡以模拟在地图上移动的汽车标记.
是否可以在android map api v2中设置动画标记?
android google-maps android-maps android-mapview google-maps-android-api-2
我有这个代码
itemizedOverlay = new MyItemizedOverlay(drawable,this);
itemizedOverlay.setGestureDetector(new GestureDetector(new MyGestureDetecor()));
Run Code Online (Sandbox Code Playgroud)
但在Eclipse中new GestureDetector标记为Deprecated.
我想避免使用已弃用的方法.
我怎么能解决这个问题?
什么是不弃用的表格?
我已经检查并仔细检查了我在Google控制台上注册的API密钥但是我仍然收到以下错误:
12-05 16:31:12.940: E/Google Maps Android API(12334): Failed to load map. Could not contact Google servers.
Run Code Online (Sandbox Code Playgroud)
我所看到的是放大/缩小按钮和MapView的背景但没有Map ??? !!!
有任何想法吗???
回答
我将在此发布,因为解决了我的问题的原因已在下面接受的答案的评论中说明.
这是READ_GSERVICES许可.出于某种原因,在开发人员网站上使用它们时未提及该权限.
如何更改谷歌地图我的位置默认按钮?我设置了我的位置启用和地图绘制标准图像来查找位置,是否可以更改默认图像?
android android-maps google-maps-android-api-2 android-maps-v2
我的问题很简单.谷歌地图有夜间模式吗?到目前为止,我只能申请GoogleMap.MAP_TYPE_NORMAL| GoogleMap.MAP_TYPE_TERRAIN| GoogleMap.MAP_TYPE_SATELLITE但找不到夜间模式.我想要这样的东西
请不要建议我使用叠加,我已经尝试过了.我无法使用它,因为我必须在上面放置标记.
碰到这篇文章,但它已经2岁了,我想应该有一些改进.
嗨,我正在写一个应用程序,显示一个地址附近的自行车站.我有一个服务的每个自行车站的纬度和经度位置列表.
到目前为止,我可以标记当前位置或任何地址.如何在地图上显示我所在位置附近的所有自行车站.我是否首先从当前位置获取最近的Google地点,然后访问数据库以获取自行车位置并在地图上制作标记?什么是最好的方法?
目前,我可以使用Android Google Maps API v2在Google地图中查看我的所有标记.
在地图中添加我的标记:
mapView.addMarker
(new MarkerOptions()
.position(aUsersLocation).
icon(BitmapDescriptorFactory.fromBitmap(aUserImage))
.snippet(My_VALUE_1)
.title(My_VALUE_2)
.hideInfoWindow();
Run Code Online (Sandbox Code Playgroud)
我有几个标记,并为每个标记的代码段和标题指定了几个值(My_VALUE_1和My_VALUE_2).当用户点击标记时,我需要这些唯一值,我将在onMarkerClick监听器中收到以下值:
@Override
public boolean onMarkerClick(Marker theMarker)
{
String aValue1 = theMarker.getSnippet();
String aValue2 = theMarker.getTitle();
theMarker.getPosition().latitude...
...
return false;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:当我将标题和标题值添加到标记时,当用户单击标记时,会显示infoWindow.
我需要隐藏标记的infoWindow.我尝试使用hideInfoWindow,但似乎无法正常工作.
请给我任何建议.
谢谢.
android google-maps android-maps android-mapview android-maps-v2