【问题标题】:Getting Location from coordinates从坐标获取位置
【发布时间】:2012-05-27 11:22:00
【问题描述】:

我已经给出了纬度和经度的坐标,我想用它们制作一个位置对象。没有一个构造函数可以使用双打来制作一个位置,所以我尝试这样:

 Location l = null;
 l.setLatitude(lat);
 l.setLongitude(lon);

但它崩溃了。有什么不同的想法吗?

【问题讨论】:

  • l 为空。你怎么会调用这些方法??
  • 因为没有一个构造函数接受两个双精度数作为参数,后来我知道可以通过给任何字符串作为提供者来完成。

标签: android android-location


【解决方案1】:

只需使用 new Location("reverseGeocoded"); 创建一个新位置 像这样

GeoPoint newCurrent = new GeoPoint(59529200, 18071400);
        Location current = new Location("reverseGeocoded");
        current.setLatitude(newCurrent.getLatitudeE6() / 1e6);
        current.setLongitude(newCurrent.getLongitudeE6() / 1e6);
        current.setAccuracy(3333);
        current.setBearing(333);

【讨论】:

    【解决方案2】:

    这会崩溃,因为您无法在不存在的对象上调用方法。

    我猜你说的是 android.location.Location?

    这通常是由Android的各种定位服务返回的。 你想用它做什么?

    您想对其进行反向地理编码吗?就像查找该地理坐标的地址一样?

    或者您想将其用作“假”位置并将其提供给其他应用程序?

    顺便说一句,有两个构造函数。一个采用定位服务的名称,另一个是复制构造函数并采用现有的 Location。

    所以你可以像这样创建一个位置:

    Location l = new Location("network");
    

    但我认为这不会产生你想要的东西。

    这里是文档的链接:

    https://developer.android.com/reference/android/location/Location.html#Location%28java.lang.String%29

    【讨论】:

    • 不。我正在做的是,对于给定的位置,使用 Google Places API 接收附近的地方,我需要计算这些地方与当前位置之间的距离。我看到了 distanceto()方法,但它接受位置对象。所以我需要从谷歌的 JSON 对象中返回的 lon 和 lat 创建位置。
    【解决方案3】:
    Location l = new Location("any string"); 
    l.setLatitude(lat);
    l.setLongitude(lon);
    

    【讨论】:

      【解决方案4】:

      试试这个:

      public double lat;  
      public double lon;  
      
      public void onLocationChanged(Location loc)  
      {  
      lat=loc.getLatitude();  
      lon=loc.getLongitude();  
      Toast.makeText(getBaseContext(),"Latitude:" + lat +Longitude"+lon,Toast.LENGTH_LONG).show();    
      }
      

      【讨论】:

        猜你喜欢
        • 2011-11-28
        • 2018-03-23
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 2011-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多