安卓谷歌地图纬度/经度

3
我正在编写一个应用程序,它将把地址输入转换为纬度/经度坐标,并在地图上显示给用户。一切都很顺利,但是我的坐标看起来像这样.. 35429885,-9745332..你会发现没有小数点来定义它们。我需要它们看起来像这样..35.429885,-97.45332,以便 Google Maps API 显示标记。是否有一种方法可以输入小数点,或者我的代码有问题?以下是我用于将地址转换为纬度/经度的代码。提前感谢。
geocoder = new Geocoder(this);

EditText locale = (EditText) findViewById(R.id.e_addy_text);  

String locationName = locale.getText().toString();

            try
            {
                List<Address> addressList = geocoder.getFromLocationName(  
                    locationName, 5); 

                if (addressList != null && addressList.size() > 0) 
                {  
                    lat = (int) (addressList.get(0).getLatitude() * 1e6);  
                    lng = (int) (addressList.get(0).getLongitude() * 1e6); 

                    // CONVERT TO STRING
                    e_lat = Integer.toString(lat);
                    e_lng = Integer.toString(lng);

                    // input into my database.
                }
                else
                {
                    // toast saying invalid address
                }
            } 
            catch (Exception e) 
            {  
                e.printStackTrace();  
            }
2个回答

1

getLatitude()getLongitude()返回具有十进制表示的双精度浮点值。 在此过程中,您将双精度浮点数转换为整数。

只需将该值存储在双精度变量中,然后将其转换为字符串即可。

double lat=addressList.get(0).getLatitude();

double lon=addressList.get(0).getLongitude();

转换为字符串

 e_lat=  String.valueOf(lat);
 e_lng  String.valueOf(lon);

这个答案非常完美。非常感谢。 - Jayce

0

您已将经纬度存储为整数,需要将其存储为双精度浮点数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接