根据谷歌地图的归属指南,我必须在我的 android 应用程序中显示地图时显示谷歌和地图提供商的版权。版权通常显示在地图视图的底部。
问题在于我的应用程序底部有一个圆形小部件,它隐藏了一些版权声明。
这就是为什么我想使用
GoogleMap.setPadding(0, 0, 0, mapViewHeight - copyRightFontHeight )。
setPadding 带来的变化是:
- 通过 API 调用或按钮按下(例如,指南针、我的位置、缩放按钮)的相机移动将相对于填充区域。
- getCameraPosition() 将返回填充区域的中心。
- Projection.getVisibleRegion() 将返回填充区域。
- UI 控件将从容器边缘偏移指定的像素数。
但我想要所有这些函数的标准行为(那些没有填充的函数)!
所以要么:我怎样才能只移动版权,而不改变上述功能的行为?
或者:如何让这些函数正常工作,超出padding的边界?
我有一张带有一些标记的地图。我设置了拖动侦听器:
map.setOnMarkerDragListener(this);
Run Code Online (Sandbox Code Playgroud)
但是只有在用户长按标记后才能启用拖动。我想立即启用拖动。有没有办法用 Android Maps (v2) 做到这一点?
我想检测用户是否在运行时关闭了该位置。我可以检查他是否打开了它,或者在应用程序启动之前用户是否关闭了位置,但我无法检查他是否在之后关闭了它。
代码示例:
MapEntity扩展LocationListener
class MapViewer(a: MainActivity, parentView: ViewGroup) : MapEntity(a, parentView) {
override fun onProviderEnabled(provider: String?) {
activity.hideGpsSnackbar()
}
override fun onProviderDisabled(provider: String?) {
activity.showGpsSnackbar()
}
}
Run Code Online (Sandbox Code Playgroud)
对于实时 GPS 位置检查,我正在使用 GnssStatus.Callback()
更新:
我已经BroadcastReceiver根据下面的答案创建了。
abstract class GPSReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
try {
val locationManager = context.getSystemService(LOCATION_SERVICE) as LocationManager
if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
onGpsChanged(true)
} else {
onGpsChanged(false)
}
} catch (ex: Exception) {
App.log("IsGPSEnabled: $ex")
}
}
abstract fun onGpsChanged(isEnabled: Boolean)
} …Run Code Online (Sandbox Code Playgroud) 我的 Android 应用程序中有一个用例,我的应用程序的用户必须提供 API 密钥,以便他们可以使用地图。
但我发现我必须在清单文件中提供 API 密钥。我无法在运行时编辑它。
有没有其他方法可以动态地将地图 API 密钥提供给谷歌地图(我正在使用 MapView)或动态更改元数据值的任何方法
我是android新手,现在正在使用Google maps v2,我使用tabhost来显示Google map v2,在这个tabhost中我需要在不同的标签上显示两个Google maps v2.当我切换标签b/w两个包含地图的标签时,它会重叠.我不知道要克服这个问题.
//代码在这里用于两个选项卡
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
mMap.setMyLocationEnabled(true);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
//locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME, MIN_DISTANCE, this);
Log.e("locamanager",""+locationManager);
Criteria criteria=new Criteria(); // object to retrieve provider
String provider = locationManager.getBestProvider(criteria, true);
Location location=locationManager.getLastKnownLocation(provider);
if(location!=null){
onLocationChanged(location);
}
locationManager.requestLocationUpdates(provider, 400, 1000, this);
}
@Override
public void onLocationChanged(Location location) {
latLng = new LatLng(location.getLatitude(), location.getLongitude());
Log.e("latlng",""+latLng);
cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, 15);
mMap.animateCamera(cameraUpdate);
locationManager.removeUpdates(this);
new ReverseGeocodingTask(getBaseContext()).execute(latLng);
}
Run Code Online (Sandbox Code Playgroud)
有人有解决方案请帮帮我
感谢Advance
android android-maps google-maps-android-api-2 android-maps-v2
是否可以在Google Maps API v2中设置自定义彩色标记?我有一个白色的可绘制资源,我想对它应用彩色滤镜.我试过这个:
String color = db.getCategoryColor(e.getCategoryId());
Drawable mDrawable = this.getResources().getDrawable(R.drawable.event_location);
mDrawable.setColorFilter(Color.parseColor(Model.parseColor(color)),Mode.SRC_ATOP);
map.addMarker(new MarkerOptions().position(eventLocation)
.title(e.getName()).snippet(e.getLocation())
.icon(BitmapDescriptorFactory.fromBitmap(((BitmapDrawable) mDrawable).getBitmap())));
Run Code Online (Sandbox Code Playgroud)
但它不起作用.它仅显示没有自定义颜色的白色标记.我传递给setColorFilter()的"颜色"字符串的值是"#RRGGBB"的形式.
android google-maps google-maps-markers android-drawable android-maps-v2
我在谷歌搜索但我无法得到它.我需要这种类型,其中值在标记中

我无法理解如何像上面显示的那样做.
GoogleMap gm;
gm = ((SupportMapFragment) (getSupportFragmentManager()
.findFragmentById(R.id.map))).getMap();
gm.setOnInfoWindowClickListener(this);
gm.addMarker(new MarkerOptions()
.title(jsonObj.getString("project_name"));
@Override
public void onInfoWindowClick(final Marker marker) {
String name = marker.getTitle(); // this displays when marker window gets tap
}
Run Code Online (Sandbox Code Playgroud)
但是当我点击标记窗口时,上面的代码就会显示出来.我只想显示上面的iamge链接.怎么做.请帮忙解决问题.
提前致谢.
android google-maps google-maps-markers google-maps-android-api-2 android-maps-v2
我正在为Android 4.3构建一个项目并构建到一个实际的设备,但我的谷歌地图总是显示为空,我得到授权失败..但一切都检查出来..
我有网络连接..
LOG ERROR

GOOGLE API CONSOLE

控制台服务

我的清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sapientnitro.inhouse.drop"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="17"
android:targetSdkVersion="18" />
<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.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<permission
android:name="com.sapientnitro.inhouse.drop.activities.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission
android:name="com.sapientnitro.inhouse.drop.activities.permission.MAPS_RECEIVE"
android:required="false" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<uses-library android:name="com.google.android.maps"/>
<activity
android:name=".activities.DRPSplashActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activities.DRPMapViewActivity"
android:launchMode="standard" …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Android应用程序上添加地图到我的布局,但我得到以下代码:
06-16 20:51:06.142 17581-17581/wk.gon250.dublinbike E/AndroidRuntime? FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{wk.gon250.dublinbike/wk.gon250.dublinbike.StationDetailsActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2266)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316)
at android.app.ActivityThread.access$600(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:213)
at android.app.ActivityThread.main(ActivityThread.java:5225)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:228)
at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)
at wk.gon250.dublinbike.StationDetailsActivity.onCreate(StationDetailsActivity.java:38) …Run Code Online (Sandbox Code Playgroud) package com.example.mukesh.airpollution;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMapClickListener;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.LatLngBounds;
import com.google.android.gms.maps.model.Polygon;
import com.google.android.gms.maps.model.PolygonOptions;
import com.google.maps.android.PolyUtil;
import java.util.List;
import java.util.ArrayList;
public class MapsActivity extends FragmentActivity
implements OnMapClickListener, OnMapReadyCallback {
//final int RQS_GooglePlayServices = 1;
private GoogleMap mMap;
//private GoogleMap googleMap;
boolean markerClicked;
PolygonOptions polygonOptions;
Polygon polygon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready …Run Code Online (Sandbox Code Playgroud) android ×10
android-maps-v2 ×10
google-maps ×8
android-maps ×2
android-gps ×1
google-api ×1
kotlin ×1