问题标签 [mapactivity]

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.

0 投票
1 回答
120 浏览

android - 在 MapActivity 中模拟巴士旅程

我对 Android 还很陌生,正在寻求帮助。

我有一个简单的 MapActivity 和一个 Stops(lat,long) 向量,每个停靠点都有一个 ItemizedOverlay。我知道每个站点之间的距离和公共汽车的行驶速度。单独使用 Haversine 公式,我可以计算出巴士在特定时间后的位置(纬度,经度)。我想可视化(动画)从第一站到最后一站的旅程。我的问题是这样做的最佳方法是什么。

提前致谢

0 投票
1 回答
423 浏览

android - 地图活动单地图视图

我有一个地图视图,它在地图上有一些标记和一个返回主页的按钮。我还有一个 textview 列表,当它被选中时,它将打开一个新页面,其中包含一个“查看地图”按钮。“查看地图”按钮将打开地图。每个选定的页面都有不同的地图视图,上面有不同的标记。

问题是 :

当我选择文本视图列表和“查看地图”按钮时,它工作正常。背面的按钮也运作良好。但是,当我选择另一个列表并单击按钮查看地图时,会出现调试强制关闭。我寻找解决方案,DDMS 显示“您只能在地图活动中拥有一个地图视图”。我将如何在不创建另一个类或在 android manifest 中创建新活动的情况下用更简单的方法解决这个问题?

0 投票
1 回答
423 浏览

android - Android 地图控件

如果我使用 Intent 在模拟器/设备上启动默认地图应用程序,我如何才能控制地图上的点击/触摸。例如,我想查找我所在位置的所有披萨店。如果我使用地理 URI,那就太容易了。字符串 uri = "geo:"+ 39.967571 + "," + -75.532123 + "?q=pizza"; startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri))); 一旦地图启动,我就会失去控制,我希望能够根据用户点击的位置提取一些值。

如果我扩展 MapActivity,我不会得到我想要的,即基于参数的业务列表。意图 myIntent = new Intent(YYYY.this, XXXX.class); YYYYY.this.startActivity(myIntent); 这将启动扩展 MapActivity 的 XXXX 活动。如何根据当前位置获取披萨店的列表。我尝试使用带参数的地理编码器,但结果根本不可靠。

0 投票
1 回答
2578 浏览

android - ConcurrentModificationException 使用 mylocation 覆盖和计时器

这个问题一直困扰着我,希望您能提供帮助!我以前在这里找到了许多问题的答案,希望你们能再次发挥你的魔力:)

好的,所以我的应用程序的一部分使用 Google Maps API 在地图上显示覆盖(使用自定义覆盖类)以及使用 mylocationoverlay 的用户位置。现在,如果我不激活 mylocationoverlay 一切正常,但如果它被激活,则应用程序强制以ConcurrentModificationException.

现在计时器用于刷新覆盖,因为它的位置总是在变化。为此,我使用了一个异步任务来删除覆盖并添加一个具有更新位置的新覆盖。我是否正确假设 mylocationoverlay 在后台做类似的事情?如果该假设有效,那么我得出的结论是 mylocationoverlay 和我的异步任务正在尝试同时迭代/修改同一个数组。唯一的就是,我不知道如何阻止这种情况发生!

我真的不能在这里发布我的代码,因为它非常大,但我使用了一个从 github 创建的由 commonsguy 创建的示例代码,并对其进行了修改以产生相同的问题。

任何帮助将不胜感激,因为这真的让我很沮丧。在此先感谢,并为冗长的描述感到抱歉!

编辑:commonsguy 代码的链接是 - https://github.com/commonsguy/cw-advandroid/blob/master/Maps/NooYawkAsync/

编辑 2:在 java 代码之后添加了错误跟踪。

堆栈跟踪:

com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:44) 的 com.google.android.maps 的 java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573) 的 java.util.ConcurrentModificationException。 MapView.onDraw(MapView.java:494) 在 android.view.View.draw(View.java:6740) 在 android.view.ViewGroup.drawChild(ViewGroup.java:1640) 在 android.view.ViewGroup.dispatchDraw(ViewGroup .java:1367) 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638) 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 在 android.view.ViewGroup.drawChild(ViewGroup.java:1638)在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 在 android.view.View.draw(View.java:6743) 在 android.widget.FrameLayout.draw(FrameLayout.java:352) 在 android.view。 android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 上的 ViewGroup.drawChild(ViewGroup.java:1640)。view.View.draw(View.java:6743) at android.widget.FrameLayout.draw(FrameLayout.java:352) at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1847)在 android.view.ViewRoot.draw(ViewRoot.java:1407) 在 android.view.ViewRoot.performTraversals(ViewRoot.java:1163) 在 android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 在 android.os。 Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang.reflect.Method.invokeNative (Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) at com.android.internal.os .ZygoteInit.main(ZygoteInit.java:636) 在 dalvik.system.NativeStart.main(Native Method)FrameLayout.draw(FrameLayout.java:352) 在 com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1847) 在 android.view.ViewRoot.draw(ViewRoot.java:1407) 在 android .view.ViewRoot.performTraversals(ViewRoot.java:1163) 在 android.os.Looper 的 android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 在 android.os.Handler.dispatchMessage(Handler.java:99)。 loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method. java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 在 dalvik.system.NativeStart .main(本机方法)FrameLayout.draw(FrameLayout.java:352) 在 com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1847) 在 android.view.ViewRoot.draw(ViewRoot.java:1407) 在 android .view.ViewRoot.performTraversals(ViewRoot.java:1163) 在 android.os.Looper 的 android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 在 android.os.Handler.dispatchMessage(Handler.java:99)。 loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method. java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 在 dalvik.system.NativeStart .main(本机方法)draw(PhoneWindow.java:1847) at android.view.ViewRoot.draw(ViewRoot.java:1407) at android.view.ViewRoot.performTraversals(ViewRoot.java:1163) at android.view.ViewRoot.handleMessage(ViewRoot.java :1727) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java .lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)在 dalvik.system.NativeStart.main(本机方法)的 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)draw(PhoneWindow.java:1847) at android.view.ViewRoot.draw(ViewRoot.java:1407) at android.view.ViewRoot.performTraversals(ViewRoot.java:1163) at android.view.ViewRoot.handleMessage(ViewRoot.java :1727) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java .lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)在 dalvik.system.NativeStart.main(本机方法)的 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)1727) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java. lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 在 dalvik.system.NativeStart.main(Native Method)1727) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java. lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 在 dalvik.system.NativeStart.main(Native Method)main(ZygoteInit.java:636) 在 dalvik.system.NativeStart.main(Native Method)main(ZygoteInit.java:636) 在 dalvik.system.NativeStart.main(Native Method)

0 投票
0 回答
1147 浏览

android - 后退按钮不适用于加载到 tabhost 的 MapActivity

设置:
屏幕 1:城市选择屏幕(主屏幕)
屏幕 2:Tabhost 由一个选项卡中的地图活动和另一个选项卡中的列表视图组成。

问题: 当我从主屏幕访问地图活动时,后退按钮不起作用。事实上它什么也没做。我什至试图通过覆盖“OnBackPressed”函数来查看它是否会收到任何呼叫......

什么都没有出现。它应该回到主屏幕。我在模拟器和我的 android 设备上都尝试了相同的结果。

有什么作用

  • 当我自己启动地图(不在 tabhost 中)时,后退按钮可以正常工作
  • 在选项卡 2 的列表视图中时,后退按钮工作正常

是否有其他东西可能正在接受可能接受 onBackPressed 事件的地图视图?我还尝试查看持有 tabhost 的活动是否正在接受 onBackPressed 事件,但事实并非如此。

还有其他想法吗?

0 投票
3 回答
945 浏览

android - 如何让 TabActivity 中的 MapActivity 等待从服务器获取 Overlay 数据?

因此,在我的程序中,我有一个包含两个选项卡的 TabActivity,一个选项卡是 ListView,另一个是通过 Intent 启动的 MapActivity。我想要我的应用程序做的是发送一个带有电话位置和产品名称的查询,并接收一个最近的拥有该产品的商店的列表,然后在地图选项卡中显示这些商店并在另一个选项卡中显示它们的列表。当 TabActivity 启动时,应用程序开始侦听位置,并在获得位置后立即开始与服务器(在 AsyncTask 中)的通信。

问题是当 TabActivity 启动时,它也启动了 MapActivity,因为它在它的第一个选项卡中,并且 MapActivity 开始尝试在地图上添加叠加层,但是这些叠加层还没有数据,因为 TabActivity 中的 AsyncTask 还没有完成尚未从服务器获取数据,这会导致程序崩溃。

我需要我的应用程序在第一次打开 TabActivity 时显示一个空的谷歌地图,并等待从服务器获取数据,然后将叠加层添加到地图上以标记其上的商店。谁能告诉我如何实现这一目标?我想我应该从 MapActivity 的 onCreate 中删除 Overlay 制作部分代码并将其放在其他地方,但我不知道在哪里。

0 投票
1 回答
3365 浏览

android - 如何从 Android 中的 SQLite 表中检索数据

我正在使用 SQLite 在 Android 中做一个 Map 应用程序来存储和检索数据。所以我创建了一个表来存储纬度和经度,但我不知道如何从 SQLite 检索纬度和经度值以将它们绑定到地图活动中的纬度和经度值。

谁能帮我?

0 投票
1 回答
731 浏览

android - Google 地图上的 Android 强制关闭:java.lang.NoSuchFieldException: loading_tile_android

在我的应用程序中启动 Google 地图(MapActivity 类)时,我的一位 Android 用户正在强制关闭。他得到一个 MissingResourceException。到目前为止,他是唯一一个抱怨的人,他正在使用 Vanilla Tazz 手机。谷歌地图应用程序本身在他的设备上运行良好。看起来这是 Vanilla Tazz 特有的东西。我试图在网上找到一个修复程序,但没有成功。这是Android错误日志:

如果有人可以提出任何解决此问题的建议,我将不胜感激。

0 投票
8 回答
59646 浏览

android - Android MapActivity : Couldn't get connection factory client

I'm trying to get the Map demos working, as provided in the Google API sample projects.  I am using AVDs and have tried with versions 8, 10 and 11 and get the same issue.

I've generated my own debug key and added to the project.  I can see the map on app start up, and can zoom in etc - so I am getting the map tiles, fine. Yes - I have the correct permissions and  library set in the Manifest file (as per samples).

But, I cannot set a location on the map, either via DDMS or Telnet.  I see the following error in LogCat: MapActivity : Couldn't get connection factory client

I've read numerous threads regarding this issue, but they always seem to be as a result of a bad API key; which I do not have, as I am retrieving map tiles.

So I created my own project to test this further, and am executing the following code on initialisation of my map:

I see my first log statement, but never the second, and "MapActivity : Couldn't get connection factory client" is written to LogCat at that point.

I have read that there were issues with SDK v8 emulators, so I have tried with v10 and 11 - but still no joy. I have NOT yet tried this on an actual device - will do soon.

Any help on this issue would be greatly appreciated - it's really baffling me  ;)

cheers

0 投票
2 回答
3358 浏览

android - 如何动画到中心地图的其他位置

我有一个扩展 MapActivity 的活动,在onCreate()里面我有这个代码

动画到那一点,但是,当它动画时,该点位于屏幕的中心,我希望它位于屏幕上的固定(X,Y)位置。是否有 mc.animatetoLeftBottom(point) 函数?

编辑:我用 Projection p = mapView.getProjection(); point = p.fromPixels(50, 60); mc.animateTo(point);

图片:当我启动应用程序时,它看起来像这样:

最初的

在我点击一次引脚后,它看起来像这样

一键后

而且,如果我再次点击图钉,它将如下所示:

两次敲击后

这就是它的样子,无论我从哪里点击它,或者如果我滚动、缩放然后再次点击:

应该如何

我想要的是当我点击别针时它会自动移动到那个位置(见最后一张图片)