我是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));
答案 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);