Snap to Roads Android

后端 未结 1 1411
粉色の甜心
粉色の甜心 2020-12-18 09:44

I\'m writing an Android app and I need the ability to take a lat/long value and find the lat/long value of the nearest road to it. I\'ve read the article at http://econym.or

相关标签:
1条回答
  • 2020-12-18 10:29

    Your URL seems to work perfectly.

    Here is the AsyncTask I used to test it.

    public class SnapToRoad extends AsyncTask<Void, Void, Void> {
    
    private static final String TAG = SnapToRoad.class.getSimpleName();
    
    @Override
    protected Void doInBackground(Void... params) {
        Reader rd = null;
        try {
            URL url = new URL("http://maps.google.com/maps/api/directions/xml?origin=52.0,0&destination=52.0,0&sensor=true");
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setReadTimeout(10000 /* milliseconds */);
            con.setConnectTimeout(15000 /* milliseconds */);
            con.connect();
            if (con.getResponseCode() == 200) {
    
                rd = new InputStreamReader(con.getInputStream());
                StringBuffer sb = new StringBuffer();
                final char[] buf = new char[1024];
                int read;
                while ((read = rd.read(buf)) > 0) {
                    sb.append(buf, 0, read);
                }
                Log.v(TAG, sb.toString());
            } 
            con.disconnect();
        } catch (Exception e) {
            Log.e("foo", "bar", e);
        } finally {
            if (rd != null) {
                try {
                    rd.close();
                } catch (IOException e) {
                    Log.e(TAG, "", e);
                }
            }
        }
        return null;
    }
    

    Within the logcat output if you look down a few lines you should see:

    11-07 16:20:42.880: V/SnapToRoad(13920):     <start_location>
    11-07 16:20:42.880: V/SnapToRoad(13920):      <lat>51.9999900</lat>
    11-07 16:20:42.880: V/SnapToRoad(13920):      <lng>0.0064800</lng>
    11-07 16:20:42.880: V/SnapToRoad(13920):     </start_location>
    

    They are the coordinates you are looking for. I hope this helps.

    0 讨论(0)
提交回复
热议问题