簡體   English   中英

如何在Google Map v2中獲取標記的經度和緯度值

[英]How to get the longitude and latitude value of the marker in google map v2

我正在使用Google Map v2。 我只是在地圖上添加了一個標記。 但是我無法從標記中獲取位置。 我在Google中搜索了很多,但沒有得到正確的答案。 我只想敬酒標記的經度和緯度值。 有人可以建議我什么嗎?

我的代碼:

double mylongitudey,mylatitudey;
String latilongi;
ImageView iv;
Button manual,proceed;

GoogleMap map;
LatLng mylat ;

String latlong;
Marker mymarker,marker;
boolean markerclicked;
double mylatitudeyd,mylongitudeyd;
String addstringaa;


@Override
protected void onCreate(Bundle savedInstanceState) {
 LocationManager lm;
  lm= (LocationManager) getSystemService(Context.LOCATION_SERVICE);

  Toast.makeText(this,"Please select the destination by long click", Toast.LENGTH_LONG).show();

  LatLng mylat;

  final GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
  map.setOnMarkerDragListener(this);
  map.setTrafficEnabled(true);
  map.setMyLocationEnabled(true);
  map.setOnMarkerDragListener(this);


  map.setOnMyLocationButtonClickListener(this);

  map.animateCamera(CameraUpdateFactory.zoomTo(15));
 // map.setOnMyLocationButtonClickListener(this);


  map.moveCamera(CameraUpdateFactory.newLatLngZoom(mylat, 13));
 map.addMarker(new MarkerOptions().position(mylat).title("You are Here"));

 markerclicked=false;
  //onMyLocationButtonClick();
  map.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {

    @Override
    public void onMapLongClick(LatLng arg0) {
        // TODO Auto-generated method stub


        if(markerclicked==false)
        {
         mymarker = map.addMarker(new MarkerOptions().position(arg0).title("Your Destination").draggable(true));
         markerclicked=true;
    }else{

         Toast.makeText(getApplicationContext(), "Marker Aready Set..!", Toast.LENGTH_LONG).show();

    }

    }
});


  map.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
    LatLng mylatlong;
    @Override
    public void onMyLocationChange(Location arg0) {

        // TODO Auto-generated method stub
        mylongitudey = arg0.getLongitude();
        mylatitudey = arg0.getLatitude();
        mylatlong = new LatLng(arg0.getLatitude(), arg0.getLongitude());
        //sourcepoint=String.format(" ",mylat);
        marker= map.addMarker(new MarkerOptions().position(mylatlong).title("YOur Destination"));
//  map.moveCamera(CameraUpdateFactory.newLatLngZoom(mylat,1));
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(mylatlong, 14));


    }
});

調用marker.getPosition()將返回一個LatLng對象,該對象存儲緯度和經度。

Marker marker = <your initialization>;
LatLng latLng = marker.getPosition();
double latitude = latLng.latitude;
double longitude = latLng.longitude;
try {
            List<Address> detail = gcd.getFromLocation(location.getLatitude(),
                    location.getLongitude(), 1);
            cityName = detail.get(0).getAddressLine(1);

        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

嘗試

latitude = detail.get(0).getLatitude();
Log.d("location"+marker.getPosition().longitude+" "+marker.getPosition().latitude);

也許這會有所幫助...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM