繁体   English   中英

如何从具有多个经度和纬度坐标的JSON文件中创建Google Maps标记

[英]How can I create google maps markers from a JSON file with multiple latitude and longitude coordinates

我有一个具有多个纬度和经度坐标的JSON文件。 有了这些数据,我想创建多个Google Maps标记。

我尝试使用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));

https://api.myjson.com/bins/kp9wz上的文件包含员工,名字,年龄等。它不包含“名称”,“纬度”或“经度”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM