【问题标题】:Android mutiple markers not plotting on mapAndroid多个标记未在地图上绘制
【发布时间】:2017-07-17 05:21:12
【问题描述】:

我正在为 android 开发一个基于地理围栏的应用程序,在应用程序上我正在保存用户刚刚创建的围栏

SharedPreferences sharedPref = getPreferences( Context.MODE_PRIVATE );
        SharedPreferences.Editor editor = sharedPref.edit();

        editor.putLong("key_lat", Double.doubleToRawLongBits( marker1.getPosition().latitude ));
        editor.putLong( "key_lon", Double.doubleToRawLongBits( marker1.getPosition().longitude ));

        editor.putLong("lock_lat", Double.doubleToRawLongBits( marker2.getPosition().latitude ));
        editor.putLong("lock_lon", Double.doubleToRawLongBits( marker2.getPosition().latitude ));

        editor.apply();

其中 marker1 是栅栏圆心,marker2 描绘了外边界。 当用户登录到应用程序时,如果后台运行围栏服务,则必须显示上一个围栏,即地图中的围栏坐标,但只显示第一个标记

 @Override
    public void onConnected(@Nullable Bundle bundle) {
        Toast.makeText(getApplicationContext(),"GoogleApi Connection Success..",Toast.LENGTH_SHORT).show();
        getCurrentLocation();
        if (isMyServiceRunning(GpsReadingService.class)){
            recoverGeofenceMarker();
        }}}



// Recovering last Geofence marker
    private void recoverGeofenceMarker() {
        Log.d(TAG, "recoverGeofenceMarker");
        SharedPreferences sharedPref = getPreferences( Context.MODE_PRIVATE );


        if ( sharedPref.contains( "key_lat" ) && sharedPref.contains( "key_lon" )&& sharedPref.contains("lock_lat")&&sharedPref.contains("lock_lon")) {
            double alat = Double.longBitsToDouble( sharedPref.getLong( "key_lat", -1 ));
            double alon = Double.longBitsToDouble( sharedPref.getLong( "key_lon", -1 ));
            LatLng slatLng = new LatLng( alat, alon );

            double blat = Double.longBitsToDouble( sharedPref.getLong( "lock_lat", -1 ));
            double blon = Double.longBitsToDouble( sharedPref.getLong( "lock_lon", -1 ));
            LatLng elatLng=new LatLng(blat,blon);

            double area_cov=Double.parseDouble(pref.getString("area_cov","350.012"));

            System.out.println("Saved Latlong values are---------------------------------->"+alat+","+alon+"\t"+area_cov);

            latlngs.add(slatLng);latlngs.add(elatLng);

            for (LatLng point : latlngs) {
                options.position(point);
                options.title("someTitle");
                options.snippet("someDesc");
                mMap.addMarker(options);
            }

            CircleOptions circleOptions = new CircleOptions()
                    .center( slatLng)
                    .strokeColor(Color.argb(100, 150,150,150))
                    .fillColor( Color.argb(50, 70,70,70) )
                    .radius( area_cov );
            geoFenceLimits = mMap.addCircle( circleOptions );



        }
    }

你们能帮忙吗..我已经尝试过这个链接,Link 1但只显示第一个标记

【问题讨论】:

    标签: java android google-maps android-maps-v2


    【解决方案1】:

    我一直很懒,最后我发现我编码的问题是什么

    editor.putLong("lock_lat", Double.doubleToRawLongBits( marker2.getPosition().latitude ));
            editor.putLong("lock_lon", Double.doubleToRawLongBits( marker2.getPosition().latitude ));
    

    而不是这个

    editor.putLong("lock_lat", Double.doubleToRawLongBits( marker2.getPosition().latitude ));
    editor.putLong("lock_lon", Double.doubleToRawLongBits( marker2.getPosition().longitude ));
    

    现在它显示了两个标记..!! 感谢所有的观众..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      • 1970-01-01
      • 2013-07-11
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多