【问题标题】:Getting the latitude and longitude of an EditText location Android获取EditText位置Android的纬度和经度
【发布时间】:2013-01-16 13:51:29
【问题描述】:

好的,所以我要做的是有一个 EditText 框,用户可以在其中输入街道名称。然后,我的应用程序将获取该街道的纬度/经度,并在地图上的该地理位置放置一个标记(使用 Google Maps API v2)。到目前为止,我已经设置了 EditText 框以及具有在指定地理点手动添加标记的功能的地图。

示例:如果用户在 EditText 框中输入“Grafton Street”,应用程序将获取纬度/经度 (53.342094,-6.259868) 并随后使用 GeoPoint 函数在地图上的该点放置一个标记,或者可能甚至突出显示整条道路(如在 Google 方向等中所见)。

我的问题是我不确定如何实际获取输入位置的纬度和经度以传递给我的 addMarker 函数。任何想法或建议将不胜感激!

编辑:已解决,请参阅下面的答案。

【问题讨论】:

    标签: android map location android-edittext geopoints


    【解决方案1】:

    我已使用下面提供的答案并设法使其正常工作。我创建了一个新的 LatLong 而不是 GeoPoint 仅仅是因为 addMarkerHere 函数使用了该类型。这是我为将来可能需要它的任何人使用的代码:

    Geocoder g = new Geocoder(this);
        List<Address> addressList = null;
        String searchRoad = "Insert Road Name Here!";
        try {
            addressList = g.getFromLocationName(searchRoad, 1);
    
        } catch (IOException e) {
            Toast.makeText(this, "Location not found",     Toast.LENGTH_SHORT)
                        .show();
                e.printStackTrace();
    
        } finally {
            Address address = addressList.get(0);
    
            if (address.hasLatitude() && address.hasLongitude()) {
                double selectedLat = address.getLatitude();
                double selectedLng = address.getLongitude();
                LatLng Road = new LatLng(selectedLat, selectedLng);
                Marker Custom = map.addMarker(new MarkerOptions()
                        .position(searchedRoad).title("Here is the road location")
                        .snippet("Hon the lads"));
        }
    

    【讨论】:

    • 加 1 用于为未来用户输入此答案。谢谢你这样做。
    【解决方案2】:

    首先,您需要使用 GoeCoder 获取名称并将其转换为 Lat\Long:

    http://developer.android.com/reference/android/location/Geocoder.html

    然后您将使用 GeoPoint 获取 lat\long 作为参数,并将其转换为 GeoPoint(用于在地图上显示)。

    https://developers.google.com/maps/documentation/android/v1/reference/com/google/android/maps/GeoPoint

    【讨论】:

    • 添加了另一个答案。您实际上需要同时使用这两个 API。
    • 太棒了,这正是我所寻找的。我会检查一下,看看我能不能让它工作。
    【解决方案3】:

    它叫geocoding。 您提交请求,他们会返回匹配的地点列表。解析该结果,获得该列表中第一名的几何形状。

    【讨论】:

      【解决方案4】:

      您的简化解释是一个好主意,也是一个很好的应用项目。

      但是即使你的简短解释很简单,因为它是一个应用项目,所以要给你想要得到的答案并不容易。您必须通过 Google 搜索收集许多示例代码和文档。

      首先,请查看this Android official manual

      其次,请在上面的文档中下载示例代码。

      【讨论】:

      猜你喜欢
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 2017-05-09
      • 2012-07-08
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多