【问题标题】:How do I programmatically show a specific location in google map?如何以编程方式在谷歌地图中显示特定位置?
【发布时间】:2015-03-28 20:09:13
【问题描述】:

所以最终我不得不回到这里再次询问。我在这个问题上搜索了很多。有很多解决方案,它们非常令人困惑。而且,大部分都是在Eclipse中完成的,他们说要改变路径,用eclipse和bla bla结合它......

问题描述:

在我的应用程序中(在 android studio 中),我有一个名为 Map view 的项目,我希望一旦用户点击它,它应该会进入一个地图视图页面并找到该地址(我在我的代码中提到过)在地图中。我怎么能这样做?

虚拟内容:

................................
................................
     static {
        // Add 4 sample items.
        addItem(new DummyItem("1", "Shopping center details"));
        addItem(new DummyItem("2", "Homepage"));
        addItem(new DummyItem("3", "Contact"));
        addItem(new DummyItem("4", "Map View"));
    }
.................................
..............................

ItemDetailFragment:

    .................
....................
 }else if(mItem.equals("4")){//4. Map View

                /*locate the following address in google map:
                Times Square
                Manhattan, NY 10036
                United States

                */
                 rootView = inflater.inflate(R.layout.fragment_map_detailed, container, false);
                WebView webview = (WebView) rootView.findViewById(R.id.webView2);

                webview.setWebViewClient(new WebViewClient());
                 }
..............................
......................

fragment_map_detailed.XML:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="1">

</LinearLayout>

【问题讨论】:

    标签: android android-layout google-maps-android-api-2 android-mapview android-maps-v2


    【解决方案1】:

    您可能希望显示标记,这些标记在您开始活动时放置在地图上。 标记不在坐标上操作或寻址。 对于您提到的地址,它将如下所示:

    @Override
    public void onMapReady(GoogleMap map) {
    map.addMarker(new MarkerOptions()
        .position(new LatLng(40.758887, -73.985152))
        .title("The Times Square"));
    }
    

    关于标记的更多信息:https://developers.google.com/maps/documentation/android/marker 更多关于从地图活动开始的信息(如果你还没有这样做,你必须看看那里):https://developers.google.com/maps/documentation/android/start

    【讨论】:

      【解决方案2】:

      我建议您将问题分解为更小的部分。您的第一个问题是您需要从地址获取 lat lng 的位置。为此,您应该使用地理编码器。像这样answer

      之后就是设置谷歌地图的问题。为此,您应该遵循developer.google.com上发布的指南

      然后使用类似的东西

      googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(locationFromGeocoder, 16));
      

      将谷歌地图移动到您在地理编码器中找到的地址。

      您可能不应该在这里使用 web 视图。原生谷歌地图支持要好得多。不知道为什么你一直在寻找 eclipse 项目,因为 android studio 现在已经很标准了。

      【讨论】:

      • 进入 maps.google.com,右键单击某个位置并单击“那里有什么”,更容易获得坐标
      • 在地理编码器所用的 android 应用程序中不是必需的。然后,您可以在将来使用任何您想要的地址,而不是将纬度和经度硬编码到应用程序中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多