Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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
Android 安卓谷歌地图mysql_Android_Mysql_Json_Android Asynctask - Fatal编程技术网

Android 安卓谷歌地图mysql

Android 安卓谷歌地图mysql,android,mysql,json,android-asynctask,Android,Mysql,Json,Android Asynctask,我有一个项目,希望显示MySQL数据库中的谷歌地图标记。这是一个跟踪系统。坐标由GPS设备生成并存储在数据库中。用户将单击以更新标记。我不明白logcat中有个错误。这是我的密码 MapActivity.java: import android.app.AlertDialog; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import

我有一个项目,希望显示MySQL数据库中的谷歌地图标记。这是一个跟踪系统。坐标由GPS设备生成并存储在数据库中。用户将单击以更新标记。我不明白logcat中有个错误。这是我的密码

MapActivity.java:

import android.app.AlertDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.List;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    GoogleMap mGoogleMap;
    Button button;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        SupportMapFragment map = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        map.getMapAsync(this);

        final LinearLayout drawer = (LinearLayout) findViewById(R.id.drawer_kuno);
        final Button option = (Button) findViewById(R.id.button4);
        button = (Button)findViewById(R.id.btn_update);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                new RetrieveTask().execute();
            }
        });

        drawer.setVisibility(View.INVISIBLE);
        option.setVisibility(View.VISIBLE);

        option.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO Auto-generated method stub
                option.setVisibility(View.INVISIBLE);
                drawer.setVisibility(View.VISIBLE);
            }

        });

        drawer.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO Auto-generated method stub
                drawer.setVisibility(View.INVISIBLE);
                option.setVisibility(View.VISIBLE);
            }

        });

    }

    @Override
    public void onMapReady(GoogleMap map) {

        LatLng mab = new LatLng(10.6817889, 122.9555016);
        map.addMarker(new MarkerOptions().position(mab).title("MAB RENT A CAR OFFICE"));
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(mab, 15));
    }

    private void addMarker (LatLng latlng) {
        MarkerOptions markerOptions = new MarkerOptions();
        markerOptions.position(latlng);
        markerOptions.title(latlng.latitude + "," + latlng.longitude);
        mGoogleMap.addMarker(markerOptions);
    }


    public void onClick_about(View v) {

        AlertDialog alertDialog = new AlertDialog.Builder(MapsActivity.this).create();
        alertDialog.setTitle("About us:");
        alertDialog.setMessage("Mary Sor Estraza, Faith Hope Claire Cuello Jessa Joy Cadigal Angeli Nicole Morales");
        alertDialog.setIcon(R.drawable.appicon);
        alertDialog.show();
    }

    private class RetrieveTask extends AsyncTask<Void, Void, String> {

        @Override
        protected String doInBackground (Void... params) {
            String strUrl = "http://127.0.0.1/location_marker_mysql/retrieve.php";
            URL url = null;
            StringBuffer sb = new StringBuffer();
            try {
                url = new URL(strUrl);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.connect();
                InputStream iStream = connection.getInputStream();
                BufferedReader reader = new BufferedReader (new InputStreamReader(iStream));
                String line = "";
                while ((line = reader.readLine()) !=null) {
                    sb.append(line);
                }

                reader.close();
                iStream.close();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return sb.toString();
        }

        @Override
        protected void onPostExecute (String result) {
            super.onPostExecute(result);
            new ParserTask().execute(result);
        }
    }

    private class ParserTask extends AsyncTask <String, Void, List<HashMap<String, String>>> {
        @Override
        protected List <HashMap <String, String>> doInBackground (String... params) {

            MarkerJSONParser markerParser = new MarkerJSONParser();
            JSONObject json = null;
            try {

                json = new JSONObject(params[0]);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            List<HashMap<String, String>> markerList  = markerParser.parse(json);
            return markerList;
        }

        @Override
        protected void onPostExecute(List<HashMap<String, String>> result) {
            for(int i=0; i<result.size();i++){
                HashMap<String, String> marker = result.get(i);
                LatLng latlng = new LatLng(Double.parseDouble(marker.get("lat")), Double.parseDouble(marker.get("lng")));
                addMarker(latlng);
            }
        }
    }


    }
导入android.app.AlertDialog;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v4.app.FragmentActivity;
导入android.view.view;
导入android.widget.Button;
导入android.widget.LinearLayout;
导入com.google.android.gms.maps.CameraUpdateFactory;
导入com.google.android.gms.maps.GoogleMap;
导入com.google.android.gms.maps.OnMapReadyCallback;
导入com.google.android.gms.maps.SupportMapFragment;
导入com.google.android.gms.maps.model.LatLng;
导入com.google.android.gms.maps.model.MarkerOptions;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.util.HashMap;
导入java.util.List;
公共类MapsActivity扩展了FragmentActivity在MapReadyCallback上的实现{
谷歌地图;
按钮;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_映射);
SupportMapFragment映射=(SupportMapFragment)getSupportFragmentManager()
.findFragmentById(R.id.map);
getMapAsync(this);
最终线性布局抽屉=(线性布局)findViewById(R.id.drawer\u kuno);
最终按钮选项=(按钮)findViewById(R.id.button4);
按钮=(按钮)findViewById(R.id.btn\u更新);
setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
新建RetrieveTask().execute();
}
});
抽屉.设置可见性(视图.不可见);
option.setVisibility(View.VISIBLE);
option.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//TODO自动生成的方法存根
选项.setVisibility(视图.不可见);
抽屉.设置可见性(视图.可见);
}
});
drawer.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//TODO自动生成的方法存根
抽屉.设置可见性(视图.不可见);
option.setVisibility(View.VISIBLE);
}
});
}
@凌驾
已于4月1日公开作废(谷歌地图){
LatLng mab=新LatLng(10.6817889122.9555016);
map.addMarker(新MarkerOptions().position(mab).title(“mab租车办公室”);
移动摄像机地图(CameraUpdateFactory.newLatLngZoom(mab,15));
}
专用空隙添加标记器(LatLng LatLng){
MarkerOptions MarkerOptions=新MarkerOptions();
标记选项位置(板条);
标记选项。标题(纬度+“,”+纬度经度);
mGoogleMap.addMarker(markerOptions);
}
公共void onClick_关于(视图v){
AlertDialog AlertDialog=新建AlertDialog.Builder(MapsActivity.this.create();
setTitle(“关于我们:”);
alertDialog.setMessage(“玛丽·索尔·埃斯特拉扎,信仰·希望·克莱尔·库埃罗·杰西·乔伊·卡迪加尔·安吉丽·妮可·莫拉莱斯”);
alertDialog.setIcon(R.drawable.appicon);
alertDialog.show();
}
私有类RetrieveTask扩展了异步任务{
@凌驾
受保护字符串doInBackground(无效…参数){
字符串strUrl=”http://127.0.0.1/location_marker_mysql/retrieve.php";
URL=null;
StringBuffer sb=新的StringBuffer();
试一试{
url=新url(strUrl);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.connect();
InputStream iStream=connection.getInputStream();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(iStream));
字符串行=”;
而((line=reader.readLine())!=null){
某人附加(行);
}
reader.close();
iStream.close();
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
使某人返回字符串();
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
新建ParserTask()。执行(结果);
}
}
私有类ParserTask扩展了AsyncTask{
@凌驾
受保护列表doInBackground(字符串…参数){
MarkerJSONParser markerParser=新的MarkerJSONParser();
JSONObject json=null;
试一试{
json=新的JSONObject(参数[0]);
}捕获(JSONException e){
e、 printStackTrace();
}
List markerList=markerParser.parse(json);
返回标记列表;
}
@凌驾
受保护的void onPostExecute(列表结果){
对于(int i=0;i
09-29 04:54:40.231    1510-1521/com.google.process.gapps E/StrictMode﹕ A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.  
    java.lang.Throwable: Explicit termination method 'end' not called
            at dalvik.system.CloseGuard.open(CloseGuard.java:184)
            at java.util.zip.Inflater.<init>(Inflater.java:82)
            at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:96)
            at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81)
            at com.android.okhttp.internal.http.HttpEngine.initContentStream(HttpEngine.java:468)
            at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:666)
            at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:347)
            at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296)
            at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:503)
            at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:136)
            at    com.google.android.gms.http.GoogleHttpClient.a(SourceFile:811)
            at com.google.android.gms.http.GoogleHttpClient.a(SourceFile:776)
            at com.google.android.gms.http.GoogleHttpClient.execute(SourceFile:667)
            at com.google.android.gms.auth.be.w.a(SourceFile:104)
            at com.google.android.gms.auth.be.w.a(SourceFile:67)
            at com.google.android.gms.auth.be.appcert.a.a(SourceFile:298)
            at com.google.android.gms.auth.be.appcert.a.a(SourceFile:134)
            at com.google.android.gms.auth.be.appcert.b.a(SourceFile:43)
            at com.google.android.gms.auth.c.b.a(SourceFile:62)
            at com.google.android.gms.auth.c.a.a(SourceFile:120)
            at com.google.android.gms.auth.c.a.a(SourceFile:61)
            at    
        com.google.android.gms.auth.be.cron.AuthCronService.a(SourceFile:44)
            at com.google.android.gms.gcm.am.run(SourceFile:135)