如何以编程方式在Google地图中显示特定位置?

时间:2015-03-28 20:09:13

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

所以最终我必须回到这里再问一次。我在这个问题上搜索了很多。有这么多解决方案,它们非常令人困惑。而且,他们中的大多数是在Eclipse中完成的,他们说要改变路径,用eclipse和bla bla来调查它......

问题描述:

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

DummyContent:

................................
................................
     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>

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

之后,这是设置谷歌地图的问题。为此,您应该遵循developer.google.com

上发布的指南 然后使用

之类的东西
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(locationFromGeocoder, 16));

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

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

祝你好运,编码愉快。