So I have been looking into this for a couple of days, and I am pretty sure the intent of the android API team is to make SearchManager a platform level tool for searching application level content, like a application database, which is very cool, and I will probably use, but not what I want at this moment.
I want to be able search a map just like the Google search apis for javascript: // We'll wait to the end to actually initialize the map // So let's build the search control searchControl = new google.search.SearchControl(); // Initialize a LocalSearch instance searcher = new google.search.LocalSearch(); // create the object //google.search.LocalSearch.ADDRESS_LOOKUP_ENABLED searcher.setCenterPoint(map); // bind the searcher to the map // Create a SearcherOptions object to ensure we can see all results var options = new google.search.SearcherOptions(); // create the object options.setExpandMode (google.search.SearchControl.EXPAND_MODE_OPEN); // Add the searcher to the SearchControl searchControl.addSearcher(searcher , options); // And second, we need is a search complete callback! searchControl.setSearchCompleteCallback(searcher , function() { map.clearOverlays(); var results = searcher.results; // Grab the results array // We loop through to get the points for (var i = 0; i < results.length; i++) { var result = results[i]; // Get the specific result var markerLatLng = new google.maps.LatLng(parseFloat (result.lat), parseFloat (result.lng)); var marker = new google.maps.Marker(markerLatLng); // Create the marker // Bind information for the infoWindow aka the map marker popup marker.bindInfoWindow(result.html.cloneNode(true)); result.marker = marker; // bind the marker to the result map.addOverlay(marker); // add the marker to the map } This *was* in previous versions of the API (1.0?) I have seen very old code like: // W00t! Search for Pizza. // Create a MapPoint from the map's coordinates MapPoint mapPoint = new MapPoint(mMapView.getMapCenter ().getLatitudeE6(), mMapView.getMapCenter().getLongitudeE6()); // Create a dummy Map for use in Search Map map = new Map(getDispatcher(), null, 0, 0, 0, mapPoint, Zoom.getZoom(mMapView.getZoomLevel()), 0); // Search for Pizza near the specified coordinates Search search = new Search("Pizza", map, 0); // add the request the dispatcher getDispatcher().addDataRequest(search); // Wait for the search to complete, Should do this // in another thread ideally, this is just for illustration here. while (!search.isComplete()) { Log.i(LOG_TAG, "."); } // Print the details. Log.i(LOG_TAG, "Done - " + search.numPlacemarks()); MapPoint point = null; for (int i = 0; i < search.numPlacemarks(); i++) { Placemark placemark = search.getPlacemark(i); point = placemark.getLocation(); Log.i(LOG_TAG, " - i : " + Integer.toString(i)); Log.i(LOG_TAG, "- Bubble : " + placemark.getBubbleDescriptor()); Log.i(LOG_TAG, "- Detail : " + placemark.getDetailsDescriptor()); Log.i(LOG_TAG, "- Title : " + placemark.getTitle()); Log.i(LOG_TAG, "- Location : " + placemark.getLocation ().toString()); Log.i(LOG_TAG, "- routable : " + placemark.routableString()); } // Animate to the last location. if (point != null) { MapController mc = mMapView.getController(); Point point1 = new Point(point.getLatitude(), point.getLongitude()); mc.animateTo(point1); mc.zoomTo(12); Log.i("animateTo", point1.toString()); } I have been thinking it could be possible by geocoding an address using the location manager: //first find the location using geocoding Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault()); try { List<Address> addrs = geocoder.getFromLocation(mMyLocationLat, mMyLocationLon, 1); } catch (IOException e) { Log.e(TAG, "geocoding failed"); } and then pre populating the search with something like "pizza @94611", but right now when I do search the results go to a browser, I really want to be able to parse the results myself using an api. Does anyone know of an example like this or can give me some advice, the API docs on SearchManager are a little difficult because I think the intentions are mixed. Is this the right approach? Is it even possible? Clay -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en