2014-09-12 151 views
0

我正在尝试获取坐标,但没有成功。结果是0。但是当我写:GoogleMaps API无法获取当前的纬度和经度

googleMap.setMyLocationEnabled(true); 

我可以看到蓝点。我想使用此代码来获得这些值:

lat = googleMap.getMyLocation().getLatitude(); 
lng = googleMap.getMyLocation().getLongitude(); 

之后,latlng为0

我的整个代码:

public class GPS_maps extends Activity { 
    // Google Map 
    private GoogleMap googleMap; 
    static Location currentLocation; 
    static double lat , lng; 
    TextView coordinates; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.map); 
     coordinates = (TextView) findViewById(R.id.txt_coordinates); 
     try { 
      // Loading map 
      initilizeMap(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    private void initilizeMap() { 
     if (googleMap == null) {    
      googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 
      // googleMap.setMyLocationEnabled(true); 
      lat = googleMap.getMyLocation().getLatitude(); 
      lng = googleMap.getMyLocation().getLongitude(); 
      coordinates.setText(String.valueOf(lat) +" , " +String.valueOf(lng)); 
      LatLng coordinate = new LatLng(lat, lng); 
      CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 5); 
      googleMap.animateCamera(yourLocation); 
      if (googleMap == null) { 
       Toast.makeText(getApplicationContext(), 
        "Unable to create maps", Toast.LENGTH_SHORT) 
        .show(); 
      } 
     } 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     initilizeMap(); 
    }} 
} 

我没有得到任何错误。我的错误在哪里?

+0

该地图可能在当时没有您的位置。尝试添加一个'onMyLocationChangeListener'到您的地图并在第一次通话中设置您的位置。 – dharms 2014-09-12 16:28:13

回答

0

请尝试以下操作:

从lat,lan的声明中删除静态修饰符。 确保您使用正确的语法发送setCoordiante。 为确保经纬度正确,请在获取它们后立即打印出来。

+0

删除了静态但仍然没有任何差异0 – user3339279 2014-09-12 16:38:59

+0

获取它们后立即打印出变量。它说什么? – 2014-09-12 16:58:31

+0

同时打印出googleMap对象以确保它存在,就像你想要的一样 – 2014-09-12 16:58:58