代码之家  ›  专栏  ›  技术社区  ›  stackoverflowuser2010

给定GPS坐标,如何找到附近的地标或兴趣点?

  •  9
  • stackoverflowuser2010  · 技术社区  · 16 年前

    我刚买了一部googlenexusone智能手机,我想写一个小的Android应用程序。假设我可以得到当前的GPS坐标,那么如何通过编程在某个半径内找到附近的地标或兴趣点呢?有没有一个API来获取GPS地理标记的地标,比如谷歌地球的数据库?

    例如,如果我在芝加哥市中心,我的程序会告诉我在那座城市要参观的所有“旅游”的东西。

    理想情况下,这一切都会在我的智能手机上运行,但如果必要的话,我可以让智能手机查询一个Web服务器,然后它会运行更多的查询。

    5 回复  |  直到 16 年前
        1
  •  4
  •   Community Mohan Dere    9 年前

    取决于你从哪里获得地标数据。如果你想做一个web查询,你可以运行上面的一个东西。

    或者-如果您有自己的数据,可以使用lat和lon值将其存储在数据库中,然后形成用于查询的边框。这个问题告诉你如何计算一个覆盖当前点周围给定半径的边界框(它将是一个框,因此它将比圆大…)。。。。

    How to calculate the bounding box for a given lat/lng location?

    使用边界框,现在可以从数据库执行查询 where lat < maxlat and lat > minlat and lon > minlon and lon < maxlon

    然后,使用androidapi中的Location类,您可以让它计算每个点击的方位角和距离,然后您可以根据位置的半径进行排序。

        2
  •  2
  •   Jan S.    16 年前

    最快的方法是:

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=business+near+city");
    startActivity(intent);
    

    在geo之后输入坐标,在q=之后输入搜索值,比如旅游+城市。这将激发谷歌地图应用程序的兴趣点。

    如果要在应用程序中使用地图视图,则需要从某些服务(如您自己的服务)获取数据。但是,您可以像这样从Google的ajax搜索中提取数据: http://ajax.googleapis.com/ajax/services/search/local?v=1.0&rsz=large&gl=pl&q=tourism+chicago http://code.google.com/apis/ajaxsearch/documentation/reference.html#_fonje_local 这将为您提供具有地理坐标的结果,您需要对结果进行解析,并可能将其放入数据库。

        3
  •  1
  •   Mulone    16 年前

    您可能会看到的另一个web服务是: http://developer.yahoo.com/geo/geoplanet/

        4
  •  1
  •   Eugene Osovetsky    15 年前

    http://compass.webservius.com -它是一个在美国有数百万个商业列表的数据库,使用restapi可以很容易地通过坐标边界框进行搜索。

    推荐文章