问题标签 [android-maps]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 等效于 OpenStreeMaps (OSMDroid) 的 com.google.android.maps.ItemizedOverlay.populate()
知道com.google.android.maps.ItemizedOverlay.populate()
在这种情况下方法的等价物是OpenSteeMapViewItemizedOverlay
什么吗?
android - 带有地图视图的谷歌地图和应用程序具有不同的当前位置
我有一个地图视图,我想在其中跟踪用户的当前位置。GPS 以及“使用无线网络”在我的手机设置中被激活。不过,由于我在室内,我没有 GPS 定位,因此位置是通过网络确定的;wifi点是可用的。
我正在运行 Google Maps 应用程序以及我的应用程序。
奇怪的是,谷歌地图和我的应用程序之间的当前位置不同,其中谷歌地图非常准确,而在我的应用程序中,位置不知何故偏离了几百米。
在我的应用程序中,我基本上执行以下操作(现在出于调试目的):
1)最初在地图上放置一个标记:通过检索地理点locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
2)最初在地图上放置另一个标记:通过检索地理点locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
这会将两个提供商的最后已知位置放在地图上(最终从我的应用程序外部最后知道)。
3)然后对于定期更新(因为我在这里无论如何都没有获得 GPS 定位),我这样做:
您可以看到在这两种情况下我通过 0 参数的频率和距离。
在应用清单中,授予以下权限:
实际上我的 baseLocationListener 确实被调用了,我在日志中看到了,但是更新的位置在某种程度上与(LocationManager.NETWORK_PROVIDER 的)最后一个已知的当前位置相同,相同的 lat/lng。
我想也许我忽略了某些东西或错过了参数或设置,或者我的代码有错误。因此,我从 Android 市场安装了一些其他(总共 3 个)LBS 应用程序,这些应用程序也显示了当前用户的位置。这些应用程序中显示的当前位置与我的应用程序中的位置相同——它们都相距约 100 米——但至少都相同。
在此处查看屏幕截图: 屏幕截图 http://img33.imageshack.us/img33/8679/mapproblem.png
http://img33.imageshack.us/img33/8679/mapproblem.png
现在我想知道:
1)据我所知,getLastKnowLocation 是系统范围的,而不是应用范围的,为什么谷歌地图和所有其他应用程序中的位置存在差异?
2) 谷歌地图不会更新提供者的 lastKnownLocation 吗?
3) Google 地图是否使用不同于 SDK 中的 GPS_PROVIDER 或 NETWORK_PROVIDER 的其他自定义位置提供程序(即由于许可原因)?
4) 如何使用 NETWORK_PROVIDER 获得与 Google Maps 一样的准确结果?
android - 从地图叠加对话框打开另一个活动
我正在尝试创建一个地图应用程序,我需要做一些类似于谷歌地图所做的事情。我想打开显示位置列表,当用户点击它们时,我想显示一个对话框。
我能做到这里。但是现在当用户单击打开的对话框时,我想显示另一个活动,其中包含他们单击的该项目的详细信息。
我试图开始一个新的意图,但它给了我一个错误。
这是我正在做的
这是堆栈跟踪
为什么我会收到此错误,如何解决此问题并打开新活动?
另外,我在哪里可以找到 android 上的谷歌地图的源代码?
谢谢你。
android - 使用 Runnable + Handler.postDelayed 进行位图标记动画的问题
我想在 MapActivity 上的 Overlay 中放置一个显示用户当前位置的动画标记。我需要能够打开和关闭动画。我认为这可以通过以下方式完成:
使用从主 MapActivity.onResume() 调用构造函数
并且动画/绘制由
但是,似乎从未调用 run() 方法。我究竟做错了什么?
android - ItemizedOverlay 似乎正在用“破碎”的投影进行绘制
我有一个奇怪的问题,我真的不知道如何解决,所以我想知道以前是否有人遇到过类似的问题。
我覆盖 ItemizedOverlay 子类中的 draw(Canvas canvas, MapView mapView, boolean shadow) 方法以在项目之间绘制一些路径、文本等。我在覆盖中做的第一件事是使用所有这些参数调用 super.draw。当我启动应用程序时,我在覆盖中绘制的线条是它们应该在的位置,但是 super.draw 绘制的实际 OverlayItems 是很远的。有趣的是,当我将地图移向左上角(坐标 0,0)时,OverlayItems 越来越接近我期望它们所在的位置(事实上,当我得到第一个时,它们似乎完美匹配项目到点 (0,0))。当我移动地图以使 OverlayItem 离 (0,0) 点更远时,它们会线性地离它们的地理位置更远。
如果以前没有人遇到过这个问题并且它不是很明显,我将尝试制作一个仍然具有此行为的最小示例并将其发布在这里。实际代码相对较大,所以如果有人知道可能是什么问题,我想避免那么多工作。
编辑:一条可能有用的附加信息......我的绘制方法如下所示:
叠加层的自定义部分没有阴影层(我在毫无问题地扩展叠加层时使用了相同的逻辑)。super.draw 为 OverlayItems 绘制的阴影层实际上位于 Drawable 和每个特定项目的预期地理位置之间。
以下是来自 avd 的树形屏幕截图,以更好地说明正在发生的事情。四个红色大头针应该在它们上方的红线上,当我将地图滑向左上方时,它实际上会朝着这条线移动。这两个引脚和它们之间的线是在我的自定义覆盖中绘制的,super.draw 绘制了四个阴影和四个额外的红色引脚。
由于这是我的第一篇文章,我不能发布多个链接,所以我将所有三个屏幕截图放在同一个 jpg 上。
截屏
android - Android - 地图视图控制器
我第一次在 Android 中实现 Google Map 并在 Android 中显示“视图控制器”时遇到了麻烦。
让我澄清一下我的问题:I want to display the "View Controller" which shows different view button, such as Satellite, street View, Hybrid, etc.
那么我如何使用 Android 在 Google 地图中显示“视图控制器”。
android - 向 Android Maps Overlay 添加项目不会立即显示在地图上。我该如何解决?
一旦我更新了它们,我不知道如何告诉我的地图重绘它的叠加层。有人可以启发我吗?
目前,用户必须在重绘地图之前触摸屏幕。
谢谢!
android - 如何实现一个小的静态地图预览作为列表图标?
我构建了一个 ListActivity,现在我想将地图预览添加为列表图标。我不想扩展 MapView,因为:第一,我只需要一点静态预览,第二,我已经扩展到 ListView。
我已经研究过使用静态地图 api,但是在那个小尺寸上看起来也不是很好:
android - Android:向 MapView 添加叠加层?
我将 Overlay 子类化为 LandMarkOverlay(并实现了 onTap(GeoPoint) 方法)。
在主要活动中,我这样做:
我还需要做什么才能在用户点击屏幕时调用landmarkOverlay
's方法?onTap(GeoPoint)
android - 如何在 MapActivity 中的标记上方显示气球?不是有小部件吗?
我不明白这一点,为什么我必须为此编写这么多代码。比如,我不想在乎...
- 气球的位置(我只想分配一个地理点)
- 基本气球的布局(稍后我可能想要实现基于 xml 的布局)
- 显示的气球数量(一次只显示一个)
- 气球的打开/关闭行为(关闭,当另一个气球被标记时)
更新
解决了!请看下面我的回答...