android - 无法显示来自存储在 mysql 数据库中的坐标的 google maps android 标记

标签 android mysql google-maps-api-3 google-maps-markers

我无法从存储在 mysql 数据库中的坐标中获取标记。我的代码中的错误在哪里?

附言我表中的 LAT 和 LON 字段具有 VARCHAR 类型。

--MapsActivity.java

    private GoogleMap mMap;
    private Double Latitude = 0.00;
    private Double Longitude = 0.00;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        ArrayList<HashMap<String, String>> location = new ArrayList<HashMap<String, String>>();
        String url = "http://192.168.1.101/crud/markers_android.php";
        try {

            JSONArray data = new JSONArray(url);
            location = new ArrayList<HashMap<String, String>>();
            HashMap<String, String> map;

            for (int i = 0; i < data.length(); i++) {

                JSONObject c = data.getJSONObject(i);
                map = new HashMap<String, String>();
                map.put("LAT", c.getString("LAT"));
                map.put("LON", c.getString("LON"));
                location.add(map);
            }

        } catch (JSONException e) {

            e.printStackTrace();
        }


        for (int i = 0; i < location.size(); i++) {

            Latitude = Double.parseDouble(location.get(i).get("LAT").toString());
            Longitude = Double.parseDouble(location.get(i).get("LON").toString());
            MarkerOptions marker = new MarkerOptions().position(new LatLng(Latitude, Longitude));
            mMap.addMarker(marker);
        }
    }


}

文件 php markers_android.php 是 here

最佳答案

用一个日志看看你从json得到了什么响应

            for (int i = 0; i < data.length(); i++)
            {
                JSONObject c = data.getJSONObject(i);
                map = new HashMap<String, String>();
                map.put("LAT", c.getString("LAT"));
                map.put("LON", c.getString("LON"));
                Log.w("eeee", "Lat : " + c.getString("LAT") + "  Lon : " + c.getString("LON")); // add this line
                location.add(map);
            }

如果可以,请给我们答复!

关于android - 无法显示来自存储在 mysql 数据库中的坐标的 google maps android 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38199485/

相关文章:

java - Android从SD卡读取文件的权限问题

javascript - 使用谷歌地图javascript旋转具有多个路径的svg标记

java - 安卓 + java.lang.NullPointerException : Attempt to invoke interface method

java - 应用程序在应用程序启动时崩溃,并出现错误 java.lang.RuntimeException :

java - RXJava 2 调用两次

mysql - 使用 LIMIT 和 ORDER BY col ASC 获取最后 X 行

MySQL 5.7 如何在 mysqld --initialize 之后选择 root 密码

mysql检测字段值变化

javascript - 谷歌街景 : Marker size and distance

javascript - 在 Google map 上获取所选机构的详细信息