5

I have just been having an issue with displaying a map by accessing the Latitude and Longitude from the SqliteDatabase.

When I run this I get the above error on the line .target(new LatLng(latitude, longitude)). Any help would be appreciated.

 import android.content.Intent;
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentManager;
    import android.support.v7.app.ActionBarActivity;
    import android.support.v7.app.AppCompatActivity;

    import com.google.android.gms.maps.CameraUpdateFactory;
    import com.google.android.gms.maps.GoogleMap;
    import com.google.android.gms.maps.OnMapReadyCallback;
    import com.google.android.gms.maps.SupportMapFragment;
    import com.google.android.gms.maps.model.BitmapDescriptorFactory;
    import com.google.android.gms.maps.model.CameraPosition;
    import com.google.android.gms.maps.model.LatLng;
    import com.google.android.gms.maps.model.MarkerOptions;

    import static com.example.kod45.refapp.R.id.lat;
    import static com.example.kod45.refapp.R.id.longitude;

    public class Map extends FragmentActivity implements OnMapReadyCallback {
        Double latitude;
        Double longitude;
        private GoogleMap mMap;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_map);
            // Obtain the SupportMapFragment and get notified when the map is ready to be used.
            SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.map);
            mapFragment.getMapAsync(this);
        }

        @Override
        public void onMapReady(GoogleMap googleMap) {
            mMap = googleMap;

            // Add a marker in Tallaght and move the camera

            CameraPosition cameraPosition = new CameraPosition.Builder()
                    .target(new LatLng(latitude, longitude))      // Sets the center of the map to Mountain View
                    .zoom(17)                   // Sets the zoom
                    .bearing(90)                // Sets the orientation of the camera to east
                    .tilt(30)                   // Sets the tilt of the camera to 30 degrees
                    .build();                   // Creates a CameraPosition from the builder
            mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

            Intent intent = getIntent();
            intent.putExtra("latitude", latitude);
            intent.putExtra("longitude", longitude);
    //        LatLng sydney = new LatLng(latitude, longitude);

        }
    }
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Rick Sanchez
  • 79
  • 1
  • 1
  • 5

3 Answers3

2

Try and assign value to latitude and longtitude-:

import android.content.Intent;
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentManager;
    import android.support.v7.app.ActionBarActivity;
    import android.support.v7.app.AppCompatActivity;

    import com.google.android.gms.maps.CameraUpdateFactory;
    import com.google.android.gms.maps.GoogleMap;
    import com.google.android.gms.maps.OnMapReadyCallback;
    import com.google.android.gms.maps.SupportMapFragment;
    import com.google.android.gms.maps.model.BitmapDescriptorFactory;
    import com.google.android.gms.maps.model.CameraPosition;
    import com.google.android.gms.maps.model.LatLng;
    import com.google.android.gms.maps.model.MarkerOptions;

    import static com.example.kod45.refapp.R.id.lat;
    import static com.example.kod45.refapp.R.id.longitude;

    public class Map extends FragmentActivity implements OnMapReadyCallback {
        Double latitude;
        Double longitude;
        private GoogleMap mMap;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_map);
            // Obtain the SupportMapFragment and get notified when the map is ready to be used.
            SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.map);

add value to latitude and longtitude from where are you getting "latitude"= "longtitude"= mapFragment.getMapAsync(this); }

        @Override
        public void onMapReady(GoogleMap googleMap) {
            mMap = googleMap;

            // Add a marker in Tallaght and move the camera

            CameraPosition cameraPosition = new CameraPosition.Builder()
                    .target(new LatLng(latitude, longitude))  //here latitude and longtitude are null as no value is assigned to them    // Sets the center of the map to Mountain View
                    .zoom(17)                   // Sets the zoom
                    .bearing(90)                // Sets the orientation of the camera to east
                    .tilt(30)                   // Sets the tilt of the camera to 30 degrees
                    .build();                   // Creates a CameraPosition from the builder
            mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

            Intent intent = getIntent();
            intent.putExtra("latitude", latitude);  
            intent.putExtra("longitude", longitude);
    //        LatLng sydney = new LatLng(latitude, longitude);

        }
    }
Shivam Oberoi
  • 1,447
  • 1
  • 9
  • 18
2

Your latitude and longitude are NULL, as they are only declared and value never assigned.

Example :

latitude=28.6139391;

longitude=77.2068325;

set location like this, this location is of Delhi

Paras Verma
  • 129
  • 9
1

You never assigned values to

Double latitude;
Double longitude;

This is where you used them.

 .target(new LatLng(latitude, longitude))      // Sets the center of the map to Mountain View
ImAtWar
  • 1,073
  • 3
  • 11
  • 23