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



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

我尝试使用 for 循环解析 JSON 文件,并将长整型和纬度保存在双精度变量中以映射它们。

` @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));

https://api.myjson.com/bins/kp9wz 处的文件包含雇员、名字、年龄等。 它不包含"名称","纬度"或"经度">

最新更新