- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个奇怪的问题。我想在 map 上显示某个位置。问题是有时一切正常,但有时我会强制关闭并且在 DDMS 中我得到:06-03 18:24:14.171:错误/AndroidRuntime(2228):在 com.google.android.maps.MapController.setCenter(MapController.java:345)看来问题出在线上:mapView.getController().setCenter(pt)。我能理解,为什么有时一切都很好,有时却不行。
这是我的代码:
package com.ShoppingList.Shops;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import com.ShoppingList.R;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import java.util.ArrayList;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
public class ShowMap extends MapActivity {
private MapView mapView;
MapController mc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.showmap);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapView.setClickable(true);
Drawable marker=getResources().getDrawable(R.drawable.pushpin);
marker.setBounds(0, 0, marker.getIntrinsicWidth(),
marker.getIntrinsicHeight());
InterestingLocations funPlaces = new InterestingLocations(marker);
mapView.getOverlays().add(funPlaces);
GeoPoint pt = funPlaces.getCenter(); // get the first-ranked point
mapView.getController().setCenter(pt);
mapView.getController().setZoom(15);
}
@Override
protected boolean isLocationDisplayed() {
return false;
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
class InterestingLocations extends ItemizedOverlay {
private List<OverlayItem> locations = new ArrayList<OverlayItem>();
private Drawable marker;
String adresa;
public InterestingLocations(Drawable marker)
{
super(marker);
this.marker=marker;
// create locations of interest
Bundle bundle = getIntent().getExtras();
adresa = bundle.getString("adress");
Geocoder geoCoder = new Geocoder(ShowMap.this, Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocationName(adresa, 5);
String add = "";
if (addresses.size() > 0) {
GeoPoint p = new GeoPoint((int) (addresses.get(0).getLatitude() * 1E6),
(int) (addresses.get(0).getLongitude() * 1E6));
locations.add(new OverlayItem(p ,"Kaufland", "Magic Kingdom"));
}
} catch (IOException e) {
e.printStackTrace();
}
populate();
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, shadow);
boundCenterBottom(marker);
}
@Override
protected OverlayItem createItem(int i) {
return locations.get(i);
}
@Override
public int size() {
return locations.size();
}
}
}
这是 LogCat:
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ShoppingList/com.ShoppingList.Shops.ShowMap}: java.lang.NullPointerException
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at android.os.Handler.dispatchMessage(Handler.java:99)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at android.os.Looper.loop(Looper.java:123)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at android.app.ActivityThread.main(ActivityThread.java:4363)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at java.lang.reflect.Method.invokeNative(Native Method)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at java.lang.reflect.Method.invoke(Method.java:521)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at dalvik.system.NativeStart.main(Native Method)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): Caused by: java.lang.NullPointerException
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at com.google.android.maps.MapController.setCenter(MapController.java:345)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at com.ShoppingList.Shops.ShowMap.onCreate(ShowMap.java:43)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-03 18:36:17.082: ERROR/AndroidRuntime(2296): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
06-03 18:36:18.881: INFO/Process(2296): Sending signal. PID: 2296 SIG: 9
最佳答案
您应该包括一个完整的日志跟踪,但 funPlaces.getCenter();
有时不会返回有效点吗?
关于android - 强制关闭 mapController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231196/
我有一个奇怪的问题。我想在 map 上显示某个位置。问题是有时一切正常,但有时我会强制关闭并且在 DDMS 中我得到:06-03 18:24:14.171:错误/AndroidRuntime(2228
我有两个 MapActivities,使用用户当前位置的那个效果很好。当我尝试创建第二个使用硬编码纬度/经度的 MapActivity 时,它会在使用 MapController 设置动画或设置缩放时
我正在尝试使用三指手势而不是一个手指来移动 map 。如果我在我的主要 Activity 中执行 scrollBy() 或 setMapCenter(),事情似乎会按预期进行。但是,例如,如果我在 A
我正在将 API 项目从 .net5 升级到 .net6 它以前工作,现在它崩溃 内部异常消息“抛出了‘Unity.Exceptions.InvalidRegistrationException’类型
我创建了一个简单的 UWP 应用程序,没有代码,只有 XAML。 如果我放大到大约美国州级别,应用程序将因未处理的异常而崩溃。 事件查看器应用程序日志显示: Fa
我正在创建一个 mapView Activity ,但由于某种原因此代码不起作用: @Override public void onCreate(Bundle savedInstanceState){
在 WinRt/WP 8.1 MapControl 中,如何区分用户何时通过滑动更改屏幕中心与程序更改? WinRt/WP 8.1 MapControl 有一个 CenterChanged 事件 (
我有一个坐标为 55.790833、49.114444 的 GeoPoint gPt。我将那个东西添加到 map 中并尝试居中。但是我的标记不在 map 的中心(它稍微高一点)。 怎么了? 这是我的代
我需要向 MapControl 添加一些元素,例如: 我通过代码设置矩形的位置: MapControl.SetLocation(r
我一直在 Google 和 SO 上对此进行研究,但我被卡住了,我想我遗漏了一些基本的东西。大多数examples我见过不处理任意 mapWidth 和单个点,只处理 Overlay 的跨度。 我有一
我正在使用 MapBox 显示特定区域的自定义 map 。在 MapBox 中:我的特定区域是黄色的, map 的其余部分是透明的(见下图)。 我想达到的目标:我想在背景图像上放置一个 MapCont
我正在尝试将谷歌地图集成到我的应用程序中,并为其提供源和目的地以放置标记。它从前几天运行正常,完全没有错误。今天突然出现此错误, map 无法正常工作。即使它没有在屏幕上显示谷歌地图,只是空白的白色屏
我正在尝试将谷歌地图集成到我的应用程序中,并为其提供源和目的地以放置标记。它从前几天运行正常,完全没有错误。今天突然出现此错误, map 无法正常工作。即使它没有在屏幕上显示谷歌地图,只是空白的白色屏
好吧,我正在 Android 中开发一个地理定位应用程序。第一次运行时,我们将 map 以当前位置为中心,然后用户可以自由缩放和平移,但我们有一个按钮可以使 map 动画化并使其回到实际位置。 问题是
这里只是一个有趣的查询,有没有一种方法可以在调用以下任一方法时捕获缩放动画序列何时结束: MapController.zoomIn() or MapController.zoomOut(); 我知道它
我想在 Windows 10 应用程序中将图钉添加到 MapControl,但该控件似乎从 Windows 8.1 开始就消失了。 就这么简单: Pushpin locationPushpin = n
我正在将堆栈面板添加到 map 控件。如下图 但是之前添加的一些点在我的堆栈面板的顶部。如何设置我的堆栈面板最顶层? XAML:
我的 MainPage 上有一个 MapControl,其中 ItemsSource 绑定(bind)到一个 ObservableCollection(通过 x:Bind)。当我导航到另一个页面然后再
我正在使用 UWP map 控件 (MapControl) 和基于 this blog post 的墨迹书写创建 Windows 桌面应用程序. 我有基本的工作。可以在 Canvas 上绘制墨迹并将它
我在 UWP 应用程序中使用带有自定义图 block 源的 MapControl(OSM 通过 HttpMapTileDataSource,替换默认的 bing-maps 图 block )。 总而言
我是一名优秀的程序员,十分优秀!