纬度,经度,字符串值

时间:2014-12-12 08:53:12

标签: android google-maps

我是Android编程的新手,我有一个项目,我想在我的地图中添加纬度和经度,我从Web服务中获取这些值,并将它们声明为字符串,但问题是在我的java中代码它不会使用方法LatLng,我试图添加代码:

} else if (xpp.getName().equals(TAG_LATITUDE)) {
                performance.latitude = valueRead;
            } else if (xpp.getName().equals(TAG_LONGITUDE)) {
                performance.longitude = valueRead;

public String latitude;
public String longitude;


CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 10);
    maps.animateCamera(cameraUpdate);

在我尝试了你们告诉我的方式之后,我有这个问题,地图显示什么都没有,现在我添加了一些我修改后的代码,你们都告诉我方法:

我解析xml的类;

public double latitude;
public double longitude;

TAG_LATITUDE = "Latitude", TAG_LONGITUDE = "Longtitude",

} else if (xpp.getName().equals(TAG_LATITUDE)) {
                performance.latitude = Double.parseDouble(valueRead);
            } else if (xpp.getName().equals(TAG_LONGITUDE)) {
                performance.longitude = Double.parseDouble(valueRead);

现在是我使用map的课程;

public class KartelaFragment extends Fragment {

private double lat;
private double lng;

@Override
public View onCreateView(LayoutInflater inflater,
                         ViewGroup container,
                         Bundle savedInstanceState) {
    View k = inflater.inflate(R.layout.klient_fragment_kartela, container, false);

    mapView = (MapView) k.findViewById(R.id.harta);
    mapView.onCreate(savedInstanceState);

    maps = mapView.getMap();
    maps.getUiSettings().setMyLocationButtonEnabled(false);
    maps.setMyLocationEnabled(true);

    MapsInitializer.initialize(this.getActivity());

    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 10);
    maps.animateCamera(cameraUpdate);

    MarkerOptions marker = new MarkerOptions();
    marker.title(String.valueOf(klienti));
    marker.snippet(String.valueOf(adresa));
    marker.draggable(true);
    marker.position(new LatLng(lat, lng));
    maps.addMarker(marker);
    maps.getUiSettings().setAllGesturesEnabled(true);
    maps.getUiSettings().setCompassEnabled(true);

lat = (double) k.findViewById(R.id.lati);
    lng = (double) k.findViewById(R.id.longi);




    return k;


void shfaqPerformance(ClientPerformanceList.ClientPerformance performance) {
    lat = Double.parseDouble(String.valueOf(performance.latitude));
    lng = Double.parseDouble(String.valueOf(performance.longitude));

3 个答案:

答案 0 :(得分:0)

请参阅this

LatLng需要double个值,但您会传递String个。您需要使用doubles将其转换为Double.parseDouble

答案 1 :(得分:0)

您将始终获得double类型的Lat-Long值。因此,如果您想要访问它,则必须将String值解析为Double值,如下所示:

所以改变你的Latitude&经度值类型为Double,并按如下方式传递:

public double latitude;
public double longitude;

CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, longitude), 10);
    maps.animateCamera(cameraUpdate);

如果您以String的形式从网络服务获取lat-long值,则将其分配给您的变量,如下所示:

public double latitude= Double.parseDouble(performance.latitude);
public double longitude= Double.parseDouble(performance.longitude);

答案 2 :(得分:0)

尝试这样

                if (jsonresult == true) {
                    JSONArray Jarray = object.getJSONArray("data");
                    for (int i = 0; i < Jarray.length(); i++) {

                        JSONObject Jasonobject = Jarray.getJSONObject(i);
                        latitude = Jasonobject.getString("latitude");
                        longitude = Jasonobject.getString("longitude");
                        speed=Jasonobject.getString("speed");
                    }
                    double lat=Double.parseDouble(latitude);
                    double lng=Double.parseDouble(longitude);

                    CameraUpdate cameraUpdate =CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 10);
                      maps.animateCamera(cameraUpdate);