如何在谷歌地图上添加标记android? [英] How to add marker on google maps android?

查看:161
本文介绍了如何在谷歌地图上添加标记android?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Android编程的初学者。我已经看过类似的问题和答案,但我仍然不知道为什么这不起作用。当我在模拟器上尝试此操作并单击某个位置时,不会出现标记。这是我的代码:

I am a beginner in Android programming. I already looked at similar questions and answers but I still can't figure out why this doesn't work. When I try this on the emulator and click a location, no marker appears. This is my code:

编辑:当我点击下面的代码时,我得到一个标记。它只给我一个运行时异常(NullPointer异常),当我第二次点击地图时:

I get a marker when I click now with the following code. It only gives me a runtime exception (NullPointer exception) when I click the map the second time:

    public class MapViewFragment extends Fragment {

    MapView mMapView;
    private GoogleMap googleMap;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_map_view, container, false);
        mMapView = (MapView) rootView.findViewById(R.id.mapView);
        mMapView.onCreate(savedInstanceState);
        mMapView.onResume();

        Context context = getActivity().getApplicationContext();

        final LocationsDB locationsDB = new LocationsDB(context);

        try {
            MapsInitializer.initialize(getActivity().getApplicationContext());
        } catch (Exception e) {
            e.printStackTrace();
        }

        mMapView.getMapAsync(new OnMapReadyCallback() {
            @Override
            public void onMapReady(GoogleMap mMap) {
                googleMap = mMap;
                googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
                    public void onMapClick(LatLng point) {
                        // Drawing marker on the map
                        MarkerOptions markerOptions = new MarkerOptions();
                        markerOptions.position(point);
                        markerOptions.title(point.latitude + " : " + point.longitude);
                        googleMap.clear();
                        googleMap.animateCamera(CameraUpdateFactory.newLatLng(point));
                        googleMap.addMarker(markerOptions);
                        // Create location object
                        Location location = new Location(point.latitude, point.longitude);
                        // add location to SQLite database
                        locationsDB.insert(location);
                    }
                });
            }
        });
        return rootView;
    }
}

7-20 07:33:00.076 5359-5359 /? W / RcsService:java.lang.NullPointerException:试图通过com.google.android.rcs在空对象引用
上调用虚方法'void com.google.android.rcs.service.service.aa()' .service.eb(SourceFile:43)
at com.google.android.rcs.service.service.JibeService.onDestroy(SourceFile:162)
at android.app.ActivityThread.handleStopService(ActivityThread.java :3569)
at android.app.ActivityThread.-wrap26(Unknown Source:0)
at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1703)
at android。 os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
在android.app.ActivityThread.main(ActivityThread.java:6540)
在java.lang.reflect.Method.invoke(本地方法)
在com.android.internal.os.Zygote $ MethodAndArgsCaller。运行(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

7-20 07:33:00.076 5359-5359/? W/RcsService: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.rcs.service.service.a.a()' on a null object reference at com.google.android.rcs.service.e.b(SourceFile:43) at com.google.android.rcs.service.service.JibeService.onDestroy(SourceFile:162) at android.app.ActivityThread.handleStopService(ActivityThread.java:3569) at android.app.ActivityThread.-wrap26(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1703) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6540) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

07-20 07 :33:00.079 5359-5359 /? E / ActivityThread:服务com.google.android.rcs.service.service.JibeService泄露了最初在此处注册的IntentReceiver com.google.android.rcs.service.provisioning.RcsReconfigurationSmsReceiver@741339。你是否错过了对unregisterReceiver()的调用?
android.app.IntentReceiverLeaked:服务com.google.android.rcs.service.service.JibeService泄漏了最初在此注册的IntentReceiver com.google.android.rcs.service.provisioning.RcsReconfigurationSmsReceiver@741339。你是否错过了对unregisterReceiver()的调用?
at android.app.LoadedApk $ ReceiverDispatcher。(LoadedApk.java:1310)
at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:1091)
at android.app.ContextImpl。
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1370)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1358)
在android.content.ContextWrapper.registerReceiver(ContextWrapper.java:603)
在com.google.android.rcs.service.provisioning.RcsSmsReceiver.a(SourceFile:12)
在com.google.android .rcs.service.hg( SourceFile:230)
在com.google.android.rcs.service.h。(SourceFile:212)
在com.google.android.rcs.service.service.a。(SourceFile:13)
在com.google.android.rcs.service.ea(SourceFile:32)
在com.google.android.rcs.service.service.JibeService.d(SourceFile:145)
at com.google.android.rcs.service.service.JibeService.onCreate(SourceFile:91)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3404)
at android.app.ActivityThread 。-wrap4(Unknown Source:0)
at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1683)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main( ActivityThread.java:6540)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

07-20 07:33:00.079 5359-5359/? E/ActivityThread: Service com.google.android.rcs.service.service.JibeService has leaked IntentReceiver com.google.android.rcs.service.provisioning.RcsReconfigurationSmsReceiver@741339 that was originally registered here. Are you missing a call to unregisterReceiver()? android.app.IntentReceiverLeaked: Service com.google.android.rcs.service.service.JibeService has leaked IntentReceiver com.google.android.rcs.service.provisioning.RcsReconfigurationSmsReceiver@741339 that was originally registered here. Are you missing a call to unregisterReceiver()? at android.app.LoadedApk$ReceiverDispatcher.(LoadedApk.java:1310) at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:1091) at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1397) at android.app.ContextImpl.registerReceiver(ContextImpl.java:1370) at android.app.ContextImpl.registerReceiver(ContextImpl.java:1358) at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:603) at com.google.android.rcs.service.provisioning.RcsSmsReceiver.a(SourceFile:12) at com.google.android.rcs.service.h.g(SourceFile:230) at com.google.android.rcs.service.h.(SourceFile:212) at com.google.android.rcs.service.service.a.(SourceFile:13) at com.google.android.rcs.service.e.a(SourceFile:32) at com.google.android.rcs.service.service.JibeService.d(SourceFile:145) at com.google.android.rcs.service.service.JibeService.onCreate(SourceFile:91) at android.app.ActivityThread.handleCreateService(ActivityThread.java:3404) at android.app.ActivityThread.-wrap4(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1683) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6540) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

推荐答案

Google地图示例
https://developers.google.com/maps/ documentation / android-api / marker

Look here in Google Maps example https://developers.google.com/maps/documentation/android-api/marker

如果你想添加标记whe ñ点击你也可以看看这里:
http://wptrafficanalyzer.in/blog/adding-marker-on-touched-location-of-google-maps-using-android-api-v2-with-supportmapfragment/

If you want to add marker when clicking you can also look here: http://wptrafficanalyzer.in/blog/adding-marker-on-touched-location-of-google-maps-using-android-api-v2-with-supportmapfragment/

这个概念就像下面的代码一样:

The consept is to do like the folowing code:

// Setting a click event handler for the map
    googleMap.setOnMapClickListener(new OnMapClickListener() {

        @Override
        public void onMapClick(LatLng latLng) {

            // Creating a marker
            MarkerOptions markerOptions = new MarkerOptions();

            // Setting the position for the marker
            markerOptions.position(latLng);

            // Setting the title for the marker.
            // This will be displayed on taping the marker
            markerOptions.title(latLng.latitude + " : " + latLng.longitude);

            // Clears the previously touched position
            googleMap.clear();

            // Animating to the touched position
            googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));

            // Placing a marker on the touched position
            googleMap.addMarker(markerOptions);
        }
    });

这篇关于如何在谷歌地图上添加标记android?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆