Java 使用GPS和JSON数据

Java 使用GPS和JSON数据,java,android,json,gps,parse-platform,Java,Android,Json,Gps,Parse Platform,我有一个活动,它显示一个活动列表(名称、图片、简要描述),以及这些信息从JSON数据中派生的位置。我试图找出如何添加一个标准,其中只显示100公里范围内的活动列表 我正在考虑将以下内容添加到我的JSON数据中 “位置代码”:(49,-123)”,其中49表示纬度和-123经度,将根据用户的当前位置评估活动的位置代码,并且只填充该范围内的活动 以下是我目前的代码: public class CultureEventsActivity extends Activity{ private s

我有一个活动,它显示一个活动列表(名称、图片、简要描述),以及这些信息从JSON数据中派生的位置。我试图找出如何添加一个标准,其中只显示100公里范围内的活动列表

我正在考虑将以下内容添加到我的JSON数据中 “位置代码”:(49,-123)”,其中49表示纬度和-123经度,将根据用户的当前位置评估活动的位置代码,并且只填充该范围内的活动

以下是我目前的代码:

public class CultureEventsActivity extends Activity{

    private static final String URL_WEB_SERVICE = "http://dooba.elasticbeanstalk.com/analytics/culture.php";
    private GridView gv;
    private ArrayList<Events_List> container;
    private ArrayList<Events_List> items;
    public Uri list_item_bac;
    public String list_item_name;
    public String list_item_description;
    public String list_item_location;
    public String single_list_item_description;
    public String list_item_price;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.events_list_layout);
        gv = (GridView) findViewById(R.id.gridview);
        container = new ArrayList<Events_List>();
        //download JSON
        listDownload();



        GridView s = (GridView) findViewById(R.id.gridview);
        s.setOnItemClickListener(new OnItemClickListener(){

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent(CultureEventsActivity.this,CultureEventsSingleItemActivity.class);

                intent.putExtra("list_item_name", container.get(position).getList_item_title());
                intent.putExtra("list_item_price", container.get(position).getList_item_price());
                intent.putExtra("list_item_location", container.get(position).getList_item_location());
                intent.putExtra("single_list_item_description", container.get(position).getSingle_list_item_description());
                intent.putExtra("list_item_bac", container.get(position).getList_item_bac().toString());
                intent.putExtra("list_item_purchase_code", container.get(position).getList_item_purchase_code());
                startActivity(intent); //start Activity
            }
        });
    }
    public void listDownload(){
        RequestQueue volley = Volley.newRequestQueue(this);
        JsonObjectRequest json = new JsonObjectRequest(Method.GET, URL_WEB_SERVICE, null, ResponseListener(), ErrorListener());
        volley.add(json);
    }

    private Response.Listener<JSONObject> ResponseListener() {
        return new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {
                    //your JSON Array
                    JSONArray array = response.getJSONArray("list_item");
                    for(int i = 0; i < array.length(); i++){
                        container.add(convertirAnuncio(array.getJSONObject(i)));
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                gv.setAdapter(new AdapterEvents(getApplicationContext(),container));
                }
            };
        };


    private Response.ErrorListener ErrorListener() {
        return new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) { }
        };
    }

    //object JSON
    private final Events_List convertirAnuncio(JSONObject obj) throws JSONException {
        long id = obj.getLong("id"); //id 
        String list_item_name = obj.getString("list_item_name"); 
        String list_item_location = obj.getString("list_item_location"); 
        String list_item_description = obj.getString("list_item_description");
        String list_item_price = obj.getString("list_item_price");
        String list_item_purchase_code = obj.getString("list_item_purchase_code");
        String single_list_item_description = obj.getString("single_list_item_description");
        Uri uri = Uri.parse(obj.getString("list_item_bac"));
        return new Events_List(id, list_item_location, single_list_item_description,list_item_name,list_item_description,list_item_price,list_item_purchase_code, uri, uri);
    }
}
公共类CultureEventActivity扩展活动{
私有静态最终字符串URL\u WEB\u服务=”http://dooba.elasticbeanstalk.com/analytics/culture.php";
私有网格视图gv;
私有ArrayList容器;
私有ArrayList项;
公共Uri列表\项目\ bac;
公共字符串列表\项目\名称;
公共字符串列表\项目\说明;
公共字符串列表\项目\位置;
公共字符串单\u列表\u项目\u描述;
公共字符串列表\项目\价格;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.events\u list\u布局);
gv=(GridView)findViewById(R.id.GridView);
container=newarraylist();
//下载JSON
listDownload();
GridView s=(GridView)findViewById(R.id.GridView);
s、 setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意向意向=新意向(CultureEventsActivity.this,CultureEventsSingleItemActivity.class);
intent.putExtra(“list\u item\u name”,container.get(position.getList\u item\u title());
intent.putExtra(“list_item_price”,container.get(position.getList_item_price());
intent.putExtra(“list_item_location”,container.get(position.getList_item_location());
intent.putExtra(“单个列表项目描述”,container.get(position.getSingle列表项目描述());
intent.putExtra(“list_item_bac”,container.get(position.getList_item_bac().toString());
intent.putExtra(“list\u item\u purchase\u code”,container.get(position.getList\u item\u purchase\u code());
开始活动(意图);//开始活动
}
});
}
公开作废列表下载(){
RequestQueue-volley=volley.newRequestQueue(this);
JsonObjectRequest json=新的JsonObjectRequest(Method.GET,URL\u WEB\u服务,null,ResponseListener(),ErrorListener());
add(json);
}
private Response.Listener ResponseListener(){
返回新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
//您的JSON数组
JSONArray数组=response.getJSONArray(“列表项”);
对于(int i=0;i
到目前为止,代码填充所有活动,并且不按搜索区域过滤。如果我能包含一个常量,比如私有字符串搜索,距离=100KM,那也太好了

另外,我也在使用Parse,其中当前用户是从Parse派生的,但我不确定这是否相关

任何帮助都将不胜感激,因为我一直在努力解决这个问题。 如果您需要任何进一步的澄清,请告诉我