默认情况下,GoogleMap不会为地图拖动开始和拖动停止提供事件.我已经在这里报告了这个问题.
我想制作将使用普通事件并将其与之结合的自定义 .handleronTouchsetOnCameraChangeListener
但是我没能找到如何访问对象的onTouch事件GoogleMap.它不提供这样的回调.
我想知道如何在Google Map API v2中处理地图的onTouch事件?
android google-maps android-mapview google-maps-android-api-2
在我的应用程序中,我有一些对象,它们的位置使用标记显示在地图上.问题是,我发现处理标记点击的唯一方法是
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与一个对象相关联?
好吧,我的应用程序上的每个标记都代表一个用户,因此我需要在单击信息窗口时识别该用户以从Internet获取其数据,并且由于显而易见的原因我无法通过名称识别它们.是否可以向标记对象添加额外属性?谢谢!
我正在使用Google Maps Utility for Android,它允许在地图中创建聚类,我需要显示自定义,InfoWindow但我找不到任何方法来执行此操作.为了显示信息窗口,我有以下类,并且在方法onClusterItemRendered中我可以访问标记的信息:
class MyClusterRenderer extends DefaultClusterRenderer<MarkerItem> {
public MyClusterRenderer(Context context, GoogleMap map,
ClusterManager<MarkerItem> clusterManager) {
super(context, map, clusterManager);
}
@Override
protected void onBeforeClusterItemRendered(MarkerItem item,
MarkerOptions markerOptions) {
super.onBeforeClusterItemRendered(item, markerOptions);
markerOptions.title(String.valueOf(item.getMarkerId()));
}
@Override
protected void onClusterItemRendered(MarkerItem clusterItem,
Marker marker) {
super.onClusterItemRendered(clusterItem, marker);
}
}
Run Code Online (Sandbox Code Playgroud)
是否有人使用过该库并知道如何显示自定义内容,InfoWindow例如Google地图中使用的方式?喜欢:
getMap().setInfoWindowAdapter(new InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker arg0) {
return null;
}
@Override
public View getInfoContents(Marker arg0) {
return null;
}
});
Run Code Online (Sandbox Code Playgroud) android google-maps markerclusterer google-maps-android-api-2
我是Android开发的新手.我正在学习使用Parse.com后端服务并在早期陷入困境.
我正在按照教程创建使用的应用程序Google Maps Android API v2.我做了什么:
AnyWall-android\Anywall文件夹从下载的项目导入Android Studio然后我在这里得到一堆错误:
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.location.LocationClient;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap.CancelableCallback;
import com.google.android.gms.maps.GoogleMap.OnCameraChangeListener;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.Circle;
import com.google.android.gms.maps.model.CircleOptions;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.LatLngBounds;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
Run Code Online (Sandbox Code Playgroud)
common,location和maps红色突出显示.问题是如何解决这些错误?
我感谢任何帮助或方向(我应该检查什么?它是否缺少库?如果是,我应该添加什么库以及从哪里获取它?)
android parse-platform google-maps-android-api-2 android-studio
我在Google Maps API中遇到与Stack Overflow问题"Google Play服务正在更新"相同的问题.
不幸的是,无处不在,我的一些用户正在遭受这个问题,以及我自己的手机.另一方面,对于其他用户来说,它似乎完全正常.
此问题仅出现在我的应用中的地图上.
我试图在自己的手机上清理Google Services的缓存 - 但仍然没有.
在我的模拟器上它工作正常.
我在互联网上搜索过,并没有找到一个有效的解决方案.
最重要的部分是:我发现的大多数解决方案都需要在特定设备上完成,例如清理缓存然后重新启动手机.但是,当我们谈论发生的问题并且损害了我的大部分用户时 - 必须有一个解决方案,我可以使用它自己一次帮助他们,而不需要他们做某些操作在自己的手机上.
否则,对他们来说会非常令人沮丧,并且会让他们中的一些人卸载我的应用程序,并且因为什么?我与之无关的错误?大约两天前,一切都工作得很好,从那以后我没有对我的应用程序进行任何更改......所以...为什么?
android google-maps google-play-services google-maps-android-api-2 android-studio
使用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 map api v2中设置动画标记?
android google-maps android-maps android-mapview google-maps-android-api-2
在onCreate方法中,我正在利用它SupportMapFragment来显示地图.
SupportMapFragment fragment = new SupportMapFragment();
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, fragment).commit();
Run Code Online (Sandbox Code Playgroud)
与此相关,我想添加一个标记.问题是当调用getMap为null时,我什么时候可以再试一次?是否有我可以注册的事件或我的方法本身是错的?
mMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();
if(mMap == null)
//what do I do here?
Run Code Online (Sandbox Code Playgroud)
事实上,地图显示在手机上,但我似乎没有运气获得添加标记的参考.
更新:
我SupportMapFragment通过构造函数创建的原因是因为典型的setContentView崩溃并且无法正常工作.这让我处于困境,在那里我无法获得我在onCreate方法中的参考,因为我当时正在创建SupportMapFragment它.在进一步调查中,似乎我的setContentView问题是没有将Google-play-services jar和module/src设置为整个项目的一部分的副产品.完成这些后,setContentView现在可以工作,我可以getMap()像我期望的那样获得参考.
lots.xml ...
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)
LotsActivity.java ...
public class LotsActivity extends FragmentActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lots);
GoogleMap mMap;
mMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();
if(mMap == null) …Run Code Online (Sandbox Code Playgroud) 我一直在尝试添加一个可绘制的形状作为我要在地图上添加的标记的标记图标.
形状看起来像这样(res/drawable/blue_circle.xml):
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<size
android:width="15dp"
android:height="15dp" />
<solid
android:color="@color/Blue" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我尝试添加这样的标记:
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.blue_circle));
Run Code Online (Sandbox Code Playgroud)
显然我得到一个NullPointer异常.
标记图标必须是位图吗?我可以添加形状drawables作为标记图标吗?如果是的话,我做错了什么?
android google-maps-markers shapedrawable google-maps-android-api-2