开发者

Forward Geocoding example Code for android?

Has anyone developed any code for converting an add开发者_JS百科ress to a lat/long value. I am getting confused with Geocoder. It would be of great help if i can get sample code, I am using below code. it always gives error no address found. does not crashes

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myMap = (MapView) findViewById(R.id.simpleGM_map); // Get map from XML
        btnSearch = (Button) findViewById(R.id.simpleGM_btn_search); // Get button from xml
        adress = (EditText) findViewById(R.id.simpleGM_adress); // Get address from XML

        gc = new Geocoder(this); // create new geocoder instance

        btnSearch.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                pd = ProgressDialog.show(simpleGoogleMaps.this, "Working..", "Searching your address", true, false); //Show a progress dialog
                //Thread thread = new Thread(simpleGoogleMaps.this); //then create a new thread
            //  thread.start(); //and start the thread. it will automatically call the standard run-function.

                searchAdress = new Thread() {
                    public void run(){
                        String addressInput = adress.getText().toString(); // Get input text
                        try {
                            foundAdresses = gc.getFromLocationName(addressInput, 5); // Search addresses
                            Thread.sleep(1500);
                        } catch (Exception e) {
                            // @todo: Show error message
                        }
                        showAdressResults.sendEmptyMessage(0);                      
                    }
                };
                searchAdress.start();

            }
        });
    }

    private Handler showAdressResults = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                pd.dismiss();

                if (foundAdresses.size() == 0) { // if no address found,
                    // display an error
                    Dialog locationError = new AlertDialog.Builder(
                            simpleGoogleMaps.this).setIcon(0).setTitle(
                            "Error").setPositiveButton(R.string.ok, null)
                            .setMessage(
                                    "Sorry, your address doesn't exist.")
                            .create();
                    locationError.show();

                } else { // else display address on map
                    for (int i = 0; i < foundAdresses.size(); ++i) {
                        // Save results as Longitude and Latitude
                        // @todo: if more than one result, then show a
                        // select-list
                        Address x = foundAdresses.get(i);
                        lat = x.getLatitude();
                        lon = x.getLongitude();
                    }
                    navigateToLocation((lat * 1000000), (lon * 1000000),myMap); // display the found address
                }

            }
        };  

    /**
     * Navigates a given MapView to the specified Longitude and Latitude
     * 
     * @param latitude
     * @param longitude
     * @param mv
     */
    public static void navigateToLocation(double latitude, double longitude, MapView mv) {
        GeoPoint p = new GeoPoint((int) latitude, (int) longitude); // new
        // GeoPoint
        mv.displayZoomControls(true); // display Zoom (seems that it doesn't
        // work yet)
        MapController mc = mv.getController();
        mc.animateTo(p); // move map to the given point
        int zoomlevel = mv.getMaxZoomLevel(); // detect maximum zoom level
        mc.setZoom(zoomlevel - 1); // zoom
        mv.setSatellite(false); // display only "normal" mapview
    }
}


may be below link is useful for you Get the lat and lon according to address

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜