【问题标题】:Marker To Open Google MAPS Direction打开谷歌地图方向的标记
【发布时间】:2014-04-25 20:32:28
【问题描述】:

我有 3 个商店位置标记,每个标记都有自己的位置(纬度和经度),我想点击一个标记,以便它打开标准 Google 地图,其方向为当前用户所在的位置单击标记的目的地,现在获取用户位置是确定的,单击标记以显示 sn-p 确定但我如何单击 sn-p 弹出窗口(“单击此处获取路线”)以打开谷歌地图标配 Android 手机导航?

杰夫:

    static final LatLng ARCADIA = new LatLng(-25.746318, 28.221322999999984);
static final LatLng HATFIELD = new LatLng(-25.7487333, 28.238043199999993);
static final LatLng CENTURION = new LatLng(-25.8602778, 28.189444399999957);
private GoogleMap map;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_locate_store);

    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);


    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
    //map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
    map.setMyLocationEnabled(true);
    map.animateCamera( CameraUpdateFactory.zoomTo( 5.0f ) );

        Marker aracdia = map.addMarker(new MarkerOptions().position(ARCADIA).title("Arcadia")
                .snippet("Cnr Beatrix & Hamilton Street\n Contacts:\nTel: 076 7533 123\n click-for-directions")
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_small)));
        Marker hatfield = map.addMarker(new MarkerOptions().position(HATFIELD).title("Hatfield").icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_small)));
        Marker centurion = map.addMarker(new MarkerOptions().position(CENTURION).title("Centurion").icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_small)));

【问题讨论】:

    标签: java android


    【解决方案1】:

    你的意思是你想点击信息窗口,当你点击它时,标准的谷歌地图将以标记的位置作为位置启动。

    首先你需要为信息窗口添加一个监听器:

     myMap.setOnInfoWindowClickListener(
      new OnInfoWindowClickListener(){
        public void onInfoWindowClick(Marker marker){
    
        }
      }
    );
    

    然后在 infowindowclick 中使用 Geo-URI 创建一个意图:

     myMap.setOnInfoWindowClickListener(
          new OnInfoWindowClickListener(){
            public void onInfoWindowClick(Marker marker){
              String uri = String.format(Locale.ENGLISH, "geo:%f,%f", marker.getPosition().latitude,marker.getPosition().longitude);
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
    context.startActivity(intent);
            }
          }
        );
    

    【讨论】:

    • 我到底需要在哪里添加它,我收到一个错误:GoogleMap 类型中的方法 setOnInfoWindowClickListener(GoogleMap.OnInfoWindowClickListener) 不适用于参数(新 OnInfoWindowClickListener(){})
    • @TwoStarII 不使用 MapFragment 将其更改为 (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
    • 我宁愿坚持我已经拥有的东西 我对 Android 开发还是新手,我只想点击 sn-p 框,以便它启动或调用 MAPS 应用程序。跨度>
    • @TwoStarII 你导入 OnInfoWindowClickListener 了吗???因为我认为你没有导入它.. clrt+Shift+o 修复或突出显示 OnInfoWindowClickListener 并单击导入
    • 嗨,我已经完成了导入,通常我只是突出显示错误并出现导入,但在这种情况下不会出现,反正我现在点击 sn-p 框后出现错误:04-25 17:24:05.486: E/AndroidRuntime(1300): at com.google.android.gms.maps.GoogleMap$10.e(Unknown Source),我想在原始帖子上发布整个 logcat,但 Stackoverflow 给出了格式错误,还有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    相关资源
    最近更新 更多