我正在开发一个使用osmdroid的应用,而我目前正试图在地图上显示当前的用户位置。我还没有设置一个标记来实际标记当前位置的主要位置,因为我不认为我采取的任何方法都有效。以下是我最近从以下问题(Question code is from)获得的尝试。使用调试器,我可以看到它在run()方法中解决了什么问题。当我逐步完成代码时,它似乎跳过了这些界限。有人可以给他们任何帮助吗?我必须明确调用run吗?我认为runOnFirstFix的目的但也许我错了。谢谢!
主要活动:
GpsMyLocationProvider provider = new GpsMyLocationProvider(this);
provider.addLocationSource(LocationManager.NETWORK_PROVIDER);
locationOverlay = new MyLocationNewOverlay(provider, map);
locationOverlay.enableFollowLocation();
locationOverlay.runOnFirstFix(new Runnable() {
public void run() {
Log.d("MyTag", String.format("First location fix: %s", locationOverlay.getLastFix()));
mapController.animateTo(locationOverlay.getMyLocation());
}
});
map.getOverlayManager().add(locationOverlay);
map.invalidate();
}
public void onResume(){
super.onResume();
Configuration.getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this));
locationOverlay.enableMyLocation();
}
Android Manifest:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<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-feature
android:name="android.hardware.location.network"
android:required="false" />
<uses-feature
android:name="android.hardware.location.gps"
android:required="false" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-feature
android:name="android.hardware.wifi"
android:required="false" />
答案 0 :(得分:1)
几周前我最终解决了这个问题。我没有从设备中正确获取权限。因为我没有明确要求设备允许使用位置。我将在此处发布用于解决问题的代码。
$(document).ready(function() {
var arrLength = [];
var eleLength = $(".item-box.item-box-active").length;
//var eleLength = $(".area-bounding-box .item-box.item-box-active").length;
console.log("length", eleLength);
if (eleLength === 0) {
$(".btnCount").html("5");
} else {
$(".btnCount").html("2");
}
arrLength.push(eleLength);
console.log(arrLength);
});
我可能已经从Stack Overflow上的社区拼凑起来了,所以感谢任何帮助我解决其他问题的人!
答案 1 :(得分:0)
运行时权限设置?以下是文档:您将需要位置和可能的外部存储空间。https://developer.android.com/training/permissions/requesting.html