我在地图上添加了5个引脚.如何告诉MapView尽可能缩放并保持所有引脚在视图中?
我在Android上做了一个项目,在那里我给出了一个地理点(lat,lng)列表,每个点都有一个相关的Altitude(height)值.
我的任务是根据点高度值创建具有不同颜色的给定地图的热图.
有人知道任何现有的库也是如此.或者,如果有人能指出如何实现它,对我来说也会非常有帮助.我唯一的限制是它应该在Android中运行.
提前致谢.
android google-maps heatmap google-maps-api-3 android-mapview
我一直在寻找一段时间来找到一个很好的教程,其中包含用于ICS的Fragment中MapView的代码示例.
有人有任何链接吗?
我有一个带有listView的活动,其中每个项目在点击时都可以展开,显示一个mapView.如果单击其他项目,则关闭打开的项目.该活动扩展了MapActivity,并且只有一个mapview实例,我将其删除并根据需要添加到项目中,如下所示:
private MapView getMapView() {
if (mMapView == null) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mMapView = (MapView) inflater.inflate(R.layout.club_map,null);
}
else
{
((ViewGroup) mMapView.getParent()).removeView(mMapView);
}
return mMapView;
}
private void attachMap(View targetView,String siteID) {
if (openInPrgrs) {
return;
}
RelativeLayout relView = (RelativeLayout) targetView.findViewById(R.id.clubDetailsLayout);
LinearLayout mapContainer = (LinearLayout) relView.findViewById(R.id.mapContainer);
UtilFunctions.logIfDebug("MembershipsList","Attaching Map. siteID " + siteID + " childCount = " + mapContainer.getChildCount());
if (mapContainer.getChildCount() > 0 ) {
return;
}
MapView mapView = getMapView();
mapContainer.addView(mapView);
}
Run Code Online (Sandbox Code Playgroud)
它在大多数情况下工作正常,但是当屏幕关闭并重新打开时,或者打开的项目在屏幕上滚动并返回时,mapView会消失.我知道这是因为listView正在回收视图.如果我尝试在getView()中附加地图(如果视图处于打开位置):
public View getView(int …Run Code Online (Sandbox Code Playgroud) 当我的地图活动被调用时,我在onCreate中调用addUserMapPoint.此函数包含两个实例,我尝试使用myOverlay.getMyLocation获取位置信息.在此活动的初始加载时,第一次尝试的结果返回一个空的GeoPoint,并在主UI线程完成位于myOverlay.runOnFirstFix的监听器线程中的第二次尝试(新的Runnable()...在一秒后调用并且确实包含一个包含lat和lon的GeoPoint.这个监听器函数内的调用看起来似乎把点放在地图上,而mapController.animateTo(gp)行确实将地图移动到我的位置.我的应用程序有一个刷新按钮,当clicked再次触发此活动.我需要lat和lon才能从另一个服务获取位置数据.刷新后,第二次通过map活动代码我期待第一次调用myOverlay.getMyLocation()现在将是能够获得GeoPoint,但它仍然是null.
如果我不能通过第一次调用myOverlay.getMyLocation来获取GeoPoint,那么如何从myOverlay.runOnFirstFix(new Runnable()...线程中找到的第二个调用中传递lat和lon值.你会注意到我一直在尝试将lat和lon添加到MyApp,它是辅助bean类,但是即使在刷新之后,此类中的lat和lon也为null.如果我在addUserMapPoint函数中手动设置lat和lon第一次活动访问这些值是保留的.我猜这是因为它是在主UI线程上设置的.
public class MapActivity extends com.google.android.maps.MapActivity {
private MapView mapView = null;
private MapController mapController = null;
private MyLocationOverlay myOverlay = null;
public static MyApp app;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
app = (MyApp) getApplicationContext();
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
List<Overlay> mapOverlays = mapView.getOverlays();
mapOverlays.clear();
addUserMapPoint(mapView);
if (!app.isLocServOff()) {
//map other points – service call to get items from our service near lat and lon
addOtherMapPoints(mapOverlays);
} else {
Toast.makeText(app.getApplicationContext(),"Current location could …Run Code Online (Sandbox Code Playgroud) android mapactivity mylocationoverlay android-mapview geopoints
我刚开始使用MapFragments,我可以在我的Activity中显示Map.我只是使用一个简单的XML布局,它按预期工作:

现在,我需要在代码中获取Fragment,这样我就可以开始与Map进行交互了.这是我遇到问题的地方:

如您所见,MapFragment(或getFragmentManager)无法解析为某种类型.我的目标是Android 4,API级别17:

你也可以看到我正在引用Googke Play库.
为清晰起见,这是清单:

所以,最大的问题是:为什么我无法解决MapFragment?我错过了什么?=)
作为旁注:SupportMapFragment似乎解决好了,但那不是我想要的.
我可以将Google Maps V2(Android)限制在180°/ -180°经度(如iOS MapKit)吗?我不想让它环绕,因为我正在尝试实现一个clusterin算法,而180/-180度的分割会让它变得困难.
我希望在红线上限制平移:

我按照本教程创建了自定义地图样式
https://www.youtube.com/watch?v=sLZxAB1el6w
我现在面临的问题是我想在2D视图中显示地图而不是默认的地球3D视图我不想启用指南针,我相信你可以在两个视图之间切换.
如果您可以分享有关此信息的任何信息,那将非常有用.
谢谢
android google-maps android-mapview google-maps-android-api-2
自从我更新到Xcode 9和Swift 4.0后,我的模拟器中的mapView运行速度非常慢.我认为这是因为代码会被弃用或因为我的代码很广泛而导致速度变慢,但是我将mapView添加到空白项目中,并且mapView导航/缩放的速度也很慢!我需要配置一些设置来在模拟器中修复此问题吗?
这是控制台日志中生成的输出:
2017-10-26 23:25:50.932530-0500 mapTest[7994:151068] [VKDefault] Tile 1.2.2 (256) in current unloaded state for 0.07 seconds - Polygons - Loading (ephemeral) (0.07 sec), Rivers - Loading (ephemeral) (0.07 sec), Roads - Loading (ephemeral) (0.07 sec), Point Labels - Loading (ephemeral) (0.07 sec), Polygon Labels - Loading (ephemeral) (0.07 sec), Road Labels - Loading (ephemeral) (0.07 sec), Resources - Unavailable (terminal) (2.11 sec), Attributes - Loading (ephemeral) (0.07 sec)
Run Code Online (Sandbox Code Playgroud) 我最近遇到了一个非常奇怪的问题。我的布局中有一个地图视图,它使用数据绑定进行了膨胀。在我将 ViewPager2 添加到我的布局后,我遇到了这个问题:
java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class androidx.recyclerview.widget.RecyclerView$SavedState instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/0x1. Make sure other views do not use the same id.
Run Code Online (Sandbox Code Playgroud)
但是只有当您首先打开第一个片段并转到下一个片段,然后按返回时才会发生这种情况。
似乎它与视图状态有关,但是我可以做些什么来解决这个问题?
这是一个示例片段代码:
class TestFragment(override val layoutRes: Int = R.layout.fragment_test) : BaseFragment() {
lateinit var binding: FragmentTestBinding
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? …Run Code Online (Sandbox Code Playgroud) android android-mapview android-databinding android-viewpager2
android-mapview ×10
android ×9
google-maps ×3
mapactivity ×2
fragment ×1
geopoints ×1
heatmap ×1
listview ×1
mapfragment ×1
mkmapview ×1
simulator ×1
swift ×1