java - 如何从具有多个纬度和经度坐标的 JSON 文件创建谷歌地图标记

标签 java android json

我有一个包含多个纬度和经度坐标的 JSON 文件。有了这些数据,我想创建多个谷歌地图标记。

我尝试使用 for 循环解析 JSON 文件,并将 long 和 lat 保存在 double 变量中以映射它们。

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


   /* // Add a marker in Sydney and move the camera
    LatLng sydney = new LatLng(-34, 151);
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));*/
}

private void jsonParse() {

    String url = "https://api.myjson.com/bins/kp9wz";
    Log.d(TAG, "jsonParse: is now in jsonParse ");

    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    Log.d(TAG, "onResponse: is before try");
                    try {
                        JSONArray jsonArray = response.getJSONArray("addresses");

                        for (int i = 0; i < jsonArray.length(); i++) {
                            JSONObject address = jsonArray.getJSONObject(i);

                            String firstName = address.getString("name");
                            Double latitude = Double.parseDouble(address.getString("latitude"));
                            Double longitude = Double.parseDouble(address.getString("longitude"));

                            LatLng sydney = new LatLng(latitude, longitude);
                            mMap.addMarker(new MarkerOptions().position(sydney).title("Test Markers"));
                        }
                        Log.d(TAG, "onResponse: is after for loop");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    });
    mQueue.add(request);
}`

最佳答案

您可能需要正确缩放相机才能正确渲染事物。添加标记后,尝试如下操作:

mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, DEFAULT_ZOOM_LEVEL));

关于java - 如何从具有多个纬度和经度坐标的 JSON 文件创建谷歌地图标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57189076/

相关文章:

java - 使用java读取特定单词后的文件

java - Android/Java - 将变量作为参数传递给方法

java - 在现在的C++和Java中,double类型和float类型: if (x == 0. 0)是正确的吗?

android - 从 Assets 到我们的 Activity 中播放视频的示例代码

java - Android:线程创建另一个单例实例

JavaScript、获取、API

java - 当我重新加载 GWT 开发 Web 服务器时出现 Jetty 异常

java - 未解析的类 : Validates resource reference inside Android XML files

c# - 响应正文 json 包含转义字符串

java - 使用 Moshi 反序列化可以是两种数据类型之一的字段