繁体   English   中英

标记在Google Map Android v2中不可见

[英]Marker not visible in Google Map Android v2

您好,我需要在Google地图上添加标记以显示我当前位置的帮助。 即使在使用addMarker()方法并检查API密钥之后,标记仍然不可见。 我可以获取经度,纬度值,但标记不可见。 我正在尝试做碎片。

这是我完整的代码:

public class WhereAmI extends Fragment {

GoogleMap googleMap;
TextView tv;
Location current;
LocationManager lm;
LocationListener locLis;
public static double lat=0.0000;
public static double longi=0.0000;
public static String addressString="Address Not Available";
LatLng Locateme;
public static String disp;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View v=inflater.inflate(R.layout.whereami, container,false);
    tv=(TextView) v.findViewById(R.id.textView1);
    lm=(LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);      
     locLis=new LocationListener() {
            @Override
            public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
            switch (arg1) {
            case LocationProvider.AVAILABLE:
                Toast.makeText(getActivity(), "AVAILABLE", Toast.LENGTH_SHORT).show();
                break;
            case LocationProvider.OUT_OF_SERVICE:
                Toast.makeText(getActivity(), "OUT_OF_SERVICE", Toast.LENGTH_SHORT).show();
                break;
            case LocationProvider.TEMPORARILY_UNAVAILABLE:
                Toast.makeText(getActivity(), "TEMPORARILY_UNAVAILABLE", Toast.LENGTH_SHORT).show();
                break;
            }
            }

            @Override
            public void onProviderEnabled(String provider) {
            Toast.makeText(getActivity(), provider+" Enabled", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onProviderDisabled(String provider) {
                Toast.makeText(getActivity(), provider+" Disabled", Toast.LENGTH_SHORT).show(); 
            }

            @Override
            public void onLocationChanged(Location loc) {
                addressString="";
                lat=loc.getLatitude();
                longi=loc.getLongitude();
                Geocoder gc=new Geocoder(getActivity());
                List<Address> address;
                try{
                    address=gc.getFromLocation(lat, longi, 1);
                    for(int i=0;i<address.size();i++)
                    {   Address a=address.get(i);
                    for(int j=0;j<a.getMaxAddressLineIndex();j++){
                        addressString+=a.getAddressLine(j)+"\n";
                    }}

                    disp="Latitude: "+lat+"\n"+"Longitude: "+longi+"\n"+"Address: "+addressString;
                    tv.setText(disp);
                    if (googleMap == null) {
                       googleMap = ((MapFragment) getFragmentManager().
                       findFragmentById(R.id.map)).getMap();
                       googleMap.setMyLocationEnabled(true);
                    }
                    googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
                    Marker marker = googleMap.addMarker(new MarkerOptions()
                    .position(new LatLng(lat,longi)).title("Current Location"));
                    marker.setIcon(BitmapDescriptorFactory
                            .defaultMarker(BitmapDescriptorFactory.HUE_ROSE));
                    CameraPosition cameraPosition = new CameraPosition.Builder()
                    .target(new LatLng(lat, longi)).zoom(12).build();
            googleMap.animateCamera(CameraUpdateFactory
                    .newCameraPosition(cameraPosition));
                }catch(Exception e){
                    e.printStackTrace();
                }

        }};         
    return v;
}
@Override
public void onResume() {
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 5, locLis);
    super.onResume();
}
@Override
public void onPause() {
    lm.removeUpdates(locLis);
    super.onPause();
}
}

因为您要向参数(即纬度和经度)发送NULL 确保获得指向点的指针的坐标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM