【问题标题】:How to get the longitude and latitude value of the marker in google map v2如何在谷歌地图v2中获取标记的经纬度值
【发布时间】:2014-10-08 10:54:31
【问题描述】:

我正在使用谷歌地图 v2。我只是在地图上添加了一个标记。但我无法从标记中获取位置。我在谷歌搜索了很多,但没有得到正确的答案。我只想敬酒标记的经度和纬度值。谁能给我建议?

我的代码:

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));


    }
});

【问题讨论】:

  • 发布你的代码然后你尝试到现在>..
  • @Manish 谢谢你的回复..我已经按照你说的做了

标签: java android eclipse google-maps


【解决方案1】:

调用marker.getPosition() 将返回一个存储经纬度的LatLng 对象。

Marker marker = <your initialization>;
LatLng latLng = marker.getPosition();
double latitude = latLng.latitude;
double longitude = latLng.longitude;

【讨论】:

  • 感谢您的回答,但它给出的是当前位置而不是标记位置
  • @android_newcomer 您将标记添加到您当前的位置,您希望得到什么坐标??
  • 我应该在哪里添加标记以获得标记位置...请回答
  • @android_newcomer 这回答了您提出的问题。如果您有不同的问题或您的问题已更改,您应该开始一个新问题并更准确地描述它。
【解决方案2】:
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();

【讨论】:

  • Geocoder gcd = new Geocoder(getActivity(), Locale.getDefault());创建地理编码器对象并尝试 LatLng latLng2 = new LatLng(detail.get(0).getLatitude(), detail.get(0).getLongitude());这个而不是城市名称和设置 marker.setTitle(latLng2);
【解决方案3】:
Log.d("location"+marker.getPosition().longitude+" "+marker.getPosition().latitude);

这可能会有所帮助...

【讨论】:

    猜你喜欢
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 2012-02-18
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多