android - Can't get google maps to show behind Google Places in my app (only grid) -
i have code tutorial android working google places , maps, , want alter it, because need work google maps v2. problem instead of map, grid behind google places.
placesmapactivity.java
package com.androidhive.googleplacesandmaps; import java.util.list; import android.content.intent; import android.graphics.drawable.drawable; import android.os.bundle; import android.util.log; import com.google.android.maps.geopoint; import com.google.android.maps.mapactivity; import com.google.android.maps.mapcontroller; import com.google.android.maps.mapview; import com.google.android.maps.overlay; import com.google.android.maps.overlayitem; public class placesmapactivity extends mapactivity { // nearest places placeslist nearplaces; // map view mapview mapview; // map overlay items list<overlay> mapoverlays; additemizedoverlay itemizedoverlay; geopoint geopoint; // map controllers mapcontroller mc; double latitude; double longitude; overlayitem overlayitem; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.map_places); // getting intent info intent = getintent(); // users current geo location string user_latitude = i.getstringextra("user_latitude"); string user_longitude = i.getstringextra("user_longitude"); // nearplaces list nearplaces = (placeslist) i.getserializableextra("near_places"); mapview = (mapview) findviewbyid(r.id.mapview); mapview.setbuiltinzoomcontrols(true); mapoverlays = mapview.getoverlays(); // geopoint place on map geopoint = new geopoint((int) (double.parsedouble(user_latitude) * 1e6), (int) (double.parsedouble(user_longitude) * 1e6)); // drawable marker icon drawable drawable_user = this.getresources() .getdrawable(r.drawable.mark_red); itemizedoverlay = new additemizedoverlay(drawable_user, this); // map overlay item overlayitem = new overlayitem(geopoint, "your location", "that you!"); itemizedoverlay.addoverlay(overlayitem); mapoverlays.add(itemizedoverlay); itemizedoverlay.populatenow(); // drawable marker icon drawable drawable = this.getresources() .getdrawable(r.drawable.mark_blue); itemizedoverlay = new additemizedoverlay(drawable, this); mc = mapview.getcontroller(); // these values used map boundary area // area can see markers on screen int minlat = integer.max_value; int minlong = integer.max_value; int maxlat = integer.min_value; int maxlong = integer.min_value; // check null in case null if (nearplaces.results != null) { // loop through places (place place : nearplaces.results) { latitude = place.geometry.location.lat; // latitude longitude = place.geometry.location.lng; // longitude // geopoint place on map geopoint = new geopoint((int) (latitude * 1e6), (int) (longitude * 1e6)); // map overlay item overlayitem = new overlayitem(geopoint, place.name, place.vicinity); itemizedoverlay.addoverlay(overlayitem); // calculating map boundary area minlat = (int) math.min( geopoint.getlatitudee6(), minlat ); minlong = (int) math.min( geopoint.getlongitudee6(), minlong); maxlat = (int) math.max( geopoint.getlatitudee6(), maxlat ); maxlong = (int) math.max( geopoint.getlongitudee6(), maxlong ); } mapoverlays.add(itemizedoverlay); // showing overlay items itemizedoverlay.populatenow(); } // adjusting zoom level can see markers on map mapview.getcontroller().zoomtospan(math.abs( minlat - maxlat ), math.abs( minlong - maxlong )); // showing center of map mc.animateto(new geopoint((maxlat + minlat)/2, (maxlong + minlong)/2 )); mapview.postinvalidate(); } @override protected boolean isroutedisplayed() { homecoming false; } } googleplaces.java
package com.androidhive.googleplacesandmaps; import org.apache.http.client.httpresponseexception; import android.content.context; import android.util.log; import com.google.api.client.googleapis.googleheaders; import com.google.api.client.http.genericurl; import com.google.api.client.http.httprequest; import com.google.api.client.http.httprequestfactory; import com.google.api.client.http.httprequestinitializer; import com.google.api.client.http.httptransport; import com.google.api.client.http.javanet.nethttptransport; import com.google.api.client.http.json.jsonhttpparser; import com.google.api.client.json.jackson.jacksonfactory; @suppresswarnings("deprecation") public class googleplaces { /** global instance of http transport. */ private static final httptransport http_transport = new nethttptransport(); // google api key private static final string api_key = "****my key here*****"; // api key key browser apps // google places search url's private static final string places_search_url = "https://maps.googleapis.com/maps/api/place/search/json?"; private static final string places_text_search_url = "https://maps.googleapis.com/maps/api/place/search/json?"; private static final string places_details_url = "https://maps.googleapis.com/maps/api/place/details/json?"; private double _latitude; private double _longitude; private double _radius; /** * searching places * @param latitude - latitude of place * @params longitude - longitude of place * @param radius - radius of searchable area * @param types - type of place search * @return list of places * */ public placeslist search(double latitude, double longitude, double radius, string types) throws exception { this._latitude = latitude; this._longitude = longitude; this._radius = 3000; seek { httprequestfactory httprequestfactory = createrequestfactory(http_transport); httprequest request = httprequestfactory .buildgetrequest(new genericurl(places_search_url)); request.geturl().put("key", api_key); request.geturl().put("location", _latitude + "," + _longitude); request.geturl().put("radius", _radius); // in meters request.geturl().put("sensor", "false"); if(types != null) request.geturl().put("types", types); placeslist list = request.execute().parseas(placeslist.class); // check log cat places response status log.d("places status", "" + list.status); homecoming list; } grab (httpresponseexception e) { log.e("error:", e.getmessage()); homecoming null; } } /** * searching single place total details * @param refrence - reference id of place * - in search api request * */ public placedetails getplacedetails(string reference) throws exception { seek { httprequestfactory httprequestfactory = createrequestfactory(http_transport); httprequest request = httprequestfactory .buildgetrequest(new genericurl(places_details_url)); request.geturl().put("key", api_key); request.geturl().put("reference", reference); request.geturl().put("sensor", "false"); placedetails place = request.execute().parseas(placedetails.class); homecoming place; } grab (httpresponseexception e) { log.e("error in perform details", e.getmessage()); throw e; } } /** * creating http request mill * */ public static httprequestfactory createrequestfactory( final httptransport transport) { homecoming transport.createrequestfactory(new httprequestinitializer() { public void initialize(httprequest request) { googleheaders headers = new googleheaders(); headers.setapplicationname("androidhive-places-test"); request.setheaders(headers); jsonhttpparser parser = new jsonhttpparser(new jacksonfactory()); request.addparser(parser); } }); } } i 'm trying many things can't work, though managed google maps showing in device in different project. have alter exactly?
my logcat
02-10 16:42:42.479: w/keycharactermap(11974): can't open keycharmap file 02-10 16:42:42.479: w/keycharactermap(11974): error loading keycharmap file '/system/usr/keychars/ft5x02-touchscreen.kcm.bin'. hw.keyboards.65538.devname='ft5x02-touchscreen' 02-10 16:42:42.479: w/keycharactermap(11974): using default keymap: /system/usr/keychars/qwerty.kcm.bin 02-10 16:42:54.067: d/network(11974): network enabled 02-10 16:42:54.077: d/your location(11974): latitude:37.970373475, longitude: 23.772967 02-10 16:42:54.507: d/places status(11974): ok 02-10 16:42:57.917: d/place(11974): agora ilission s.a.chatzigianni mexi 8, athens, greece21 0725 225237.97706123.751386 02-10 16:43:00.407: d/place(11974): piu verdeΣτρατ. Αλ. Παπάγου, athens, greece21 0654 618537.99337223.794133 02-10 16:43:01.127: w/keycharactermap(11974): can't open keycharmap file 02-10 16:43:01.127: w/keycharactermap(11974): error loading keycharmap file '/system/usr/keychars/ft5x02-touchscreen.kcm.bin'. hw.keyboards.65538.devname='ft5x02-touchscreen' 02-10 16:43:01.127: w/keycharactermap(11974): using default keymap: /system/usr/keychars/qwerty.kcm.bin 02-10 16:43:02.497: w/mapactivity(11974): recycling dispatcher com.google.googlenav.datarequest.datarequestdispatcher@45202618 02-10 16:43:02.507: v/mapactivity(11974): recycling map object. 02-10 16:43:02.617: i/mapactivity(11974): handling network alter notification:connected 02-10 16:43:02.617: e/mapactivity(11974): couldn't connection mill client
check manifest
is permission , uses library added follow
<uses-permission android:name="android.permission.internet"/> in manifest tag ,
<uses-library android:name="com.google.android.maps" /> in application tag
and double check device able connect internet.
android google-maps google-places-api google-places
No comments:
Post a Comment