Google地图标记未显示

时间:2014-12-01 15:24:19

标签: android google-maps marker

我有这个代码但是当我试图显示它没有显示的标记但我可以查看我当前的位置。但起初这些代码工作正常。

package com.fatima.lokalngrizal;

import com.google.android.gms.location.LocationListener;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class RizalMap extends FragmentActivity implements LocationListener  {


GoogleMap googleMap; 
LatLng myPosition;
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.rizal_map);
        SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);

        //GoogleMap object from fragment
        googleMap = fm.getMap();

        // Enabling MyLocation Layer of google map
        googleMap.setMyLocationEnabled(true);


        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

        //retrieve provider..
        Criteria criteria = new Criteria();

        String provider = locationManager.getBestProvider(criteria, true);

        // kuha current location
        Location location = locationManager.getLastKnownLocation(provider);

        if(location!=null){
        // kuha latitude ng location mo 
        double latitude = location.getLatitude();

        // kuha longitude ng location mo 
        double longitude = location.getLongitude();

        // creating latlng ng location mo ngayun
        LatLng latLng = new LatLng(latitude, longitude);

         myPosition = new LatLng(latitude, longitude);

        googleMap.addMarker(new MarkerOptions().position(myPosition).title("You are HERE !"));

    }
}
    @Override
    public void onLocationChanged(Location arg0) {
    // TODO Auto-generated method stub

    }
}

我甚至尝试这个代码仍然是制造商没有显示。我只想在地图上看到一些标记

 map.addMarker(new MarkerOptions()
          .position(new LatLng(14.7748641,121.2433147))
          .title("Montalban Town Center")

2 个答案:

答案 0 :(得分:2)

这可能意味着您的位置变量仍为空,因此不会调用if语句中的代码。您的位置管理员可能需要调用requestLocationUpdates方法。

有关位置管理器的信息,您可以查看this tutorial

this tutorial关于Google地图标记。

目前,您还可以在没有位置管理器的情况下进行尝试,下面是示例代码:

 Marker hamburg = googleMap.addMarker(new MarkerOptions().position(new LatLng(53.558, 9.927))
        .title("Hamburg"));
 Marker kiel = googleMap.addMarker(new MarkerOptions()
        .position(new LatLng(53.551, 9.993))
        .title("Kiel")
        .snippet("Kiel is cool")
        .icon(BitmapDescriptorFactory
            .fromResource(R.drawable.ic_launcher)));

  // Move the camera instantly to hamburg with a zoom of 15.
  googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(53.558, 9.927), 15));

  // Zoom in, animating the camera.
  googleMap.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);

答案 1 :(得分:0)

我遇到了同样的问题。

当我得到latlang值时

LatLng location = new LatLng(latitude, longitude);

然后我将我的纬度值设为负值并且有效,

LatLng location = new LatLng(-1*latitude, longitude);