Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSON解析在Google地图上添加标记,将标记传递到URL_Java_Android_Json_Google Maps_Url - Fatal编程技术网

Java JSON解析在Google地图上添加标记,将标记传递到URL

Java JSON解析在Google地图上添加标记,将标记传递到URL,java,android,json,google-maps,url,Java,Android,Json,Google Maps,Url,我有一个URL,我将解析一些信息,包括经纬度,并在地图上显示它们。我已经完成了解析并在地图中添加了标记。但是标记不显示,只显示地图。起初我以为链接断开了,但后来我得到的信息是,在我通过标记之前,URL不会给出任何返回。谁能解释一下这是什么意思 这是URL和发送数据,其中也包括标签。谁能告诉我,我该怎么做? URL:“一些URL” 发送数据:{“标记”:“getAvailableDriver”,“lat”:41.022348,“lng”:-91.966721} 这是我的密码: MainActivi

我有一个URL,我将解析一些信息,包括经纬度,并在地图上显示它们。我已经完成了解析并在地图中添加了标记。但是标记不显示,只显示地图。起初我以为链接断开了,但后来我得到的信息是,在我通过标记之前,URL不会给出任何返回。谁能解释一下这是什么意思

这是URL和发送数据,其中也包括标签。谁能告诉我,我该怎么做? URL:“一些URL” 发送数据:{“标记”:“getAvailableDriver”,“lat”:41.022348,“lng”:-91.966721} 这是我的密码:

MainActivity.java

package com.hasibhasan.sampletask;

import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MainActivity extends ActionBarActivity {
    private GoogleMap googlemap;
    private static String TAG_POSTS = "posts";
    private static String TAG_DRIVER = "driver";
    private static String TAG_ID = "id";
    private static String TAG_LATITUDE = "lat";
    private static String TAG_LONGITUDE = "lon";
    private static String TAG_DATETIME = "recorded_datetime";
    private static String TAG_USERID = "user_id";
    private static String TAG_STATE = "cabby_state";
    private static String TAG_VTYPE = "vehicleType";
    private static String TAG_DRIVERNAME = "driver_name";
    private static String TAG_PICNAME = "pic_name";
    private static String TAG_RATING = "rating";
    private static String TAG_CARMODEL = "car_model";
    private static String TAG_NUMBERSIT = "number_sit";
    private static String TAG_DISTANCE = "distance";
    private static String TAG_OPERATOR = "operator";
    private static String TAG_NEARESTDISTANCE = "nearest_distance";
    private static String TAG_NDISTANCE = "distance";
    private static String TAG_TIME = "time";
    private static String TAG_CARMODELS = "car_models";
    ArrayList<Taxi> taxi;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        taxi = new ArrayList<Taxi>();
        new ParseJSONTask().execute();
        googlemap = ((MapFragment) getFragmentManager().findFragmentById(
                R.id.map)).getMap();

    }

    private class ParseJSONTask extends
            AsyncTask<Void, Void, List<MarkerOptions>> {
        @Override
        protected void onPreExecute() {

            super.onPreExecute();
        }

        @Override
        protected List<MarkerOptions> doInBackground(Void... params) {
            WebServiceHandler webServiceHandler = new WebServiceHandler();
            String jsonstr = webServiceHandler
                    .getJSONData("http://54.186.247.213/unicabi/mobileservice/CurrentLocationService.php");
            try {
                JSONObject jsonObject = new JSONObject(jsonstr);
                JSONArray postJson = jsonObject.getJSONArray(TAG_POSTS);
                List<MarkerOptions> markers = new ArrayList<MarkerOptions>();
                for (int i = 0; i < postJson.length(); i++) {
                    Taxi aTaxi = new Taxi();
                    JSONObject postObject = postJson.getJSONObject(i);
                    aTaxi.lat = postObject.getString(TAG_LATITUDE);
                    aTaxi.lon = postObject.getString(TAG_LONGITUDE);
                    aTaxi.driver_name = postObject.getString(TAG_DRIVERNAME);
                    // taxi.add(aTaxi);
                    double lati = Double.parseDouble(aTaxi.lat);
                    double lon = Double.parseDouble(aTaxi.lon);
                    markers.add(new MarkerOptions().title(aTaxi.driver_name)
                            .position(new LatLng(lati, lon)));

                    return markers;

                }

            } catch (Exception e) {
                e.printStackTrace();
            }
            return new ArrayList<MarkerOptions>();
        }

        @Override
        protected void onPostExecute(List<MarkerOptions> markers) {

            //super.onPostExecute(result);
            for (MarkerOptions marker : markers) {
                googlemap.addMarker(marker);
            }
        }
    }
}
Taxi.java

package com.hasibhasan.sampletask;

public class Taxi {
    public String posts = "";
    public String success = "";
    public String driver = "";
    public String id = "";
    public String lat = "";
    public String lon = "";
    public String recorded_datetime = "";
    public String vehicleType = "";
    public String driver_name = "";
    public String pic_name = "";
    public String rating = "";
    public String car_model = "";
    public String number_sit = "";
    public String distance = "";
    public String operator = "";
    public String nearest_distance = "";
    public String car_models = "";

}

我认为doInBackground返回的是空列表,因为url不返回任何要解析的内容,因此PostExecute不添加任何标记。有人能弄明白吗?如何在请求时将标签从应用程序传递到url,以便显示标记。我太迷路了。

http://54.186.247.213/unicabi/mobileservice/CurrentLocationService.php
url未返回jsonString。。。请检查您是否从该url获取json。

是的,链接有问题

54.186.247.213/unicabi/mobileservice/CurrentLocationService.php

您的php文件应该返回基本的json,也许您忘记了将数据编码为json格式


例如,在php中,应该有一些东西调用方法json\u encode(您的数据)

不,它没有。我还第一次告诉他们链接可能有问题。然后他们谈到传递标签,因为我是JSON的新手,我想这可能就是问题所在……但我们说链接问题的意思是,你的文件currentLocationServi.php中的代码返回了错误的字符串而不是json,如果你看这个,如果你看你的链接,第65行有错误,看起来像是从本地得到了什么C:\xampp\htdocs\unicabi\mobileservice\CurrentLocationService.php不知道文件的宿主位置,但如果文件位于主机内,则不应是C:\xamppok。问题是发送数据JSON将通过put请求发送到服务器。你知道怎么做吗?
package com.hasibhasan.sampletask;

public class Taxi {
    public String posts = "";
    public String success = "";
    public String driver = "";
    public String id = "";
    public String lat = "";
    public String lon = "";
    public String recorded_datetime = "";
    public String vehicleType = "";
    public String driver_name = "";
    public String pic_name = "";
    public String rating = "";
    public String car_model = "";
    public String number_sit = "";
    public String distance = "";
    public String operator = "";
    public String nearest_distance = "";
    public String car_models = "";

}