在从地点api获得的MapView中绘制位置

时间:2012-03-23 17:54:16

标签: android android-mapview google-places-api

我可以到附近的地方但是,我如何在mapView中绘制地点?我是否需要获取lat和lng并自己绘制它们(ItemizedOverlay等)?如果是这样,我应该怎么处理图标?因为我不能使用drawable,它只是一个URL。

我使用此方法检索地点列表:

public void performSearch() throws IOException {
    HttpRequestFactory httpRequestFactory = createRequestFactory(transport);
    HttpRequest request = httpRequestFactory.buildGetRequest(new GenericUrl(PLACES_SEARCH_URL));

    request.getUrl().put("key", API_KEY);
    request.getUrl().put("location", lat + "," + lng);
    request.getUrl().put("radius", 100);
    request.getUrl().put("types", "pharmacy|hospital");
    request.getUrl().put("sensor", "false");          

    PlacesList places = request.execute().parseAs(PlacesList.class);

    for (Place place : places.results) {
        System.out.println(place.name + " - " + place.icon);
    }
}

public static HttpRequestFactory createRequestFactory(final HttpTransport transport) {
    return transport.createRequestFactory(new HttpRequestInitializer() {
        public void initialize(HttpRequest request) {
            GoogleHeaders headers = new GoogleHeaders();
            headers.setApplicationName("The Day After");
            request.setHeaders(headers);
            JsonHttpParser parser = new JsonHttpParser(new JacksonFactory());
            request.addParser(parser);
        }
    });
}

提前致谢

1 个答案:

答案 0 :(得分:0)

Android的Map API非常缺乏。您需要为叠加层提供自己的drawable。如果你觉得懒惰,你可以从谷歌地图应用程序中提取它们;)为此,只需从手机文件浏览器中找到地图apk / System / app /并将其复制到SD卡。然后在计算机上将扩展名从apk更改为zip并且您将能够提取漂亮的叠加图标。

虽然我必须说你应该用它们作为指导来创建你自己的,因为这些是谷歌的IP。

希望它有所帮助。