当前位置: 首页 > 知识库问答 >
问题:

如何使用android版谷歌地图api将地图限制为仅限于一个国家

郭单鹗
2023-03-14

我对谷歌的android地图api完全陌生,我想知道是否有可能将地图显示的区域限制在一个国家。我的意思是,我的目标用户只在我自己的国家,当应用程序逻辑只在这个国家上时,向他们展示整个世界是没有用的,也不符合逻辑的。

有什么想法吗?

PS:如果在谷歌的api中不可能,有没有办法用另一个api从另一个提供映射服务的源中做到这一点?

共有3个答案

陶锋
2023-03-14

我敢肯定,你不能只显示你选择的国家使用谷歌api服务。但是,您可以通过查找您的国家代码(例如使用此链接),将google places auto complete限制为特定国家https://countrycode.org/)然后将查询添加到google places api,例如。

components=country:your_country_code    //Insert code into example

例如,这是is的样子:

  https://maps.googleapis.com/maps/api/place/autocomplete/json?
input=bhubaneshwar&components=country:in&sensor=false&key=your_key
戚晨
2023-03-14

您可以将用户视图限制为地图的特定方块,为此,您可以使用以下内容:

private GoogleMap mMap;
// Create a LatLngBounds that includes the city of Adelaide in Australia.
private LatLngBounds ADELAIDE = new LatLngBounds(
  new LatLng(-35.0, 138.58), new LatLng(-34.9, 138.61));
// Constrain the camera target to the Adelaide bounds.
mMap.setLatLngBoundsForCameraTarget(ADELAIDE);

在这种情况下,用户将无法在相机完全超出您指定的范围(正方形)的地图中放大。

更多详情,来源:https://developers.google.com/maps/documentation/android-api/views#restricting_the_users_panning_to_a_given_area

全宪
2023-03-14

如果您仍然感兴趣,现在可以使用setLatLngBoundsForcamaTarget方法将用户的平移限制在给定区域。

您需要更新播放服务的依赖项:

dependencies {
    compile 'com.google.android.gms:play-services:9.6.1'
}
 类似资料:
  • 我遵循配置谷歌地图Android API v2官方步骤,我使用的是Android 3.1版本。我运行项目时出错 清单文件 一个ctivity_main.xml LogCat 我还想知道Google map API v2的最低要求

  • 我如何使用https://maps.googleapis.com/maps/api/js在谷歌地图的webview中,我试图展示一张谷歌地图,就像来自waqi weather的地图一样,地图上包含关于空气污染的信息。就这样https://aqicn.org/faq/2015-09-18/map-web-service-real-time-air-quality-tile-api/

  • 我有以下代码可以将本机谷歌地图应用加载到我的项目中: 是否有任何限制或先决条件,我应该知道 因为它可以在我的笔记本电脑模拟器上工作,但不能在PC模拟器上工作 我只加载本机谷歌地图应用程序,它应该可以在任何模拟器上运行<我在这里错过了什么吗?? 我得到空白黑屏和logcat错误是: 04-16 16:20:06.051:D/PhoneWindow(841):无法保存哪个视图具有焦点,因为焦点视图已关

  • 在我的应用程序中使用了谷歌地图V2。下面是描述映射片段的代码片段。 如何限制​​用户可以导航的地图?我试着用OnCamerachenglistener做这件事,但它看起来很丑,而且不稳定。(也许这是我的错)

  • 所以我看到了一个特殊的例外,我敢肯定的是谷歌地图的绘图代码。 我有一个片段,在那里我以编程方式添加了一个支持地图片段,然后我在其中操纵谷歌地图实例。 这是stacktrace: 我无法可靠地复制它(尽管这种情况经常发生),我已经查看了ReadWriteDirectByteBuffer和ShortToByteBufferAdapter,但没有任何东西突然出现在我面前。 有什么想法吗?

  • 我试图将搜索结果限制在一个国家,并将其严重偏向于特定的lat/lng(但不限制)。 我使用“界限”字段将API返回的搜索结果偏向于用户的位置(文档)。这很有效,但是,我还需要将返回的结果限制在一个国家。 我使用的是“地区”字段,但它不会将结果限制在某个国家,只会使其产生偏见。我尝试使用“componentRestrictions”字段将结果限制在一个国家。这很有效,但是,我最初设置的位置偏差(带有