【发布时间】:2016-02-15 14:23:20
【问题描述】:
我创建了一个从 mysql 数据库中检索数据的应用程序。问题是地图没有显示任何标记。 我正在使用凌空库
public class MainActivity extends FragmentActivity {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpMapIfNeeded();
String uri = "localhost/get_all_products.php";
RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext());
JsonArrayRequest request = new JsonArrayRequest(
uri,
new Response.Listener<JSONArray>(){
LatLng location;
@Override
public void onResponse(JSONArray response) {
int count = response.length();
for(int i = 0; i < count; i++){
try {
JSONObject jo = response.getJSONObject(i);
Double lat = Double.parseDouble(jo.getString("lat"));
Double lng = Double.parseDouble(jo.getString("lng"));
location = new LatLng(lat,lng);
MarkerOptions options = new MarkerOptions();
options.position(location);
options.title(jo.getString("product"));
options.snippet(jo.getString("product"));
mMap.addMarker(options);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
CameraUpdate cu = CameraUpdateFactory.newLatLng(location);
mMap.moveCamera(cu);
Toast.makeText(getApplicationContext(), response.toString(), Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "onErrorResponse", Toast.LENGTH_LONG).show();
}
}
);
Object TAG_REQUEST_QUEUE = new Object();
request.setTag(TAG_REQUEST_QUEUE);
mRequestQueue.add(request);
mRequestQueue.start();
}
@Override
protected void onResume() {
super.onResume();
setUpMapIfNeeded();
}
private void setUpMapIfNeeded() {
if (mMap == null) {
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
if (mMap != null) {
}
}
}
}
地图没有任何标记,应用程序不会崩溃。
php文件是正确的所以这里不需要放代码
谢谢你:)
--------编辑
我得到的截击错误是
org.json.JSONException: value <html><body><script of type java.lang.String cannot be converted to JSONArray
【问题讨论】:
-
从数据库中检索数据和显示标记是两件不同的事情,首先检查响应和你得到的错误
-
错误是 org.json.JSONException: value
-
这意味着您没有得到有效的 JSON 数据,请尝试修复您的响应
标签: android mysql android-volley google-maps-api-2