Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谷歌地图android标记始终指向同一位置?_Android_Google Maps_Google Maps Markers - Fatal编程技术网

谷歌地图android标记始终指向同一位置?

谷歌地图android标记始终指向同一位置?,android,google-maps,google-maps-markers,Android,Google Maps,Google Maps Markers,我想在地图上显示我的位置和目的地位置。问题是,目的地位置总是指向同一位置,即使我改变另一个目的地的长度和纬度 这是密码 protected void tampilkanPosisikeMap(Location newLocation) { List<Overlay> overlays = mapView.getOverlays(); if (overlays.size() > 0) { for (Iterator iterator = over

我想在地图上显示我的位置和目的地位置。问题是,目的地位置总是指向同一位置,即使我改变另一个目的地的长度和纬度

这是密码

protected void tampilkanPosisikeMap(Location newLocation) {
    List<Overlay> overlays = mapView.getOverlays();

    if (overlays.size() > 0) {
        for (Iterator iterator = overlays.iterator(); iterator.hasNext();) {
            iterator.next();
            iterator.remove();
        }
    }

    GeoPoint geopoint = new GeoPoint(
            (int) (newLocation.getLatitude() * 1E6), (int) (newLocation
                    .getLongitude() * 1E6));
    GeoPoint myposition = geopoint;
    Location locationA = new Location("point A");
    Location locationB = new Location("point B");
    locationA.setLatitude(geopoint.getLatitudeE6() / 1E6);
    locationA.setLongitude(geopoint.getLongitudeE6() / 1E6);

    Drawable icon1 = getResources().getDrawable(R.drawable.user);
    icon1.setBounds(0, 0, icon1.getIntrinsicWidth(), icon1
            .getIntrinsicHeight());

    MyItemizedOverlay overlay1 = new MyItemizedOverlay(icon1, this);
    OverlayItem item1 = new OverlayItem(geopoint, "Posisi Anda", "Lat:"
            + locationA.getLatitude() + "\nLng:" + locationA.getLongitude());
    overlay1.addItem(item1);
    mapView.getOverlays().add(overlay1); 



    String lat2,longi2;
    String nama_rs;String alamat_rs;
    nama_rs = getIntent().getExtras().getString("namarsakit");
    alamat_rs = getIntent().getExtras().getString("alamatrsakit");
    lat2 = getIntent().getExtras().getString("lat");
    longi2 = getIntent().getExtras().getString("longi");
    Double lintang_rs = Double.parseDouble(lat2);
    Double bujur_rs = Double.parseDouble(longi2);

        GeoPoint geopoint1 = new GeoPoint(
                (int) (lintang_rs * 1E6),
                (int) (bujur_rs * 1E6));
        locationB.setLatitude(geopoint1.getLatitudeE6() / 1E6);
        locationB.setLongitude(geopoint1.getLongitudeE6() / 1E6);

        DecimalFormat formatData = new DecimalFormat("#.#");
        float distance = (float) locationA.distanceTo(locationB) / 1000;
        String jarak;
        jarak = String.valueOf(formatData.format(distance));

        Drawable icon = getResources().getDrawable(R.drawable.marker); //
        icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon
                .getIntrinsicHeight());
        MyItemizedOverlay overlay = new MyItemizedOverlay(icon, this); //
        OverlayItem item = new OverlayItem(geopoint1, nama_rs,          //
                alamat_rs
                        + "\n\nJarak dari Posisi Anda : " + jarak + " km");
        overlay.addItem(item);
        mapView.getOverlays().add(overlay);
        Toast.makeText(MapDetailActivity.this,"nama = "+nama_rs+"lat tujuan= "+lintang_rs+"long tujuan = "+bujur_rs, Toast.LENGTH_SHORT).show();



    mapView.getController().animateTo(geopoint1);


}

若要显示当前位置,必须点击GPS位置提供商或网络位置提供商。看看你的代码,我看不到这些。请注意,emulator DDMS将默认为特定位置。除非您自己提供一个

位置B.setLatitudegeopoint1.getLatitudeE6/1E6;你有没有检查过它是不是双重类型的?还是int类型?也许是问题所在。。我试着烤一烤,纬度值是变化的,而经度不变。。你能帮我吗?我犯了什么错?我已经将纬度和经度都设置为双精度。但是当您打印这两个时,它们都打印为双精度?经度与您所在位置的纬度或经度相似吗?打印所有内容以检查变量设置是否正确。
String lat2,longi2;
    String nama_rs;String alamat_rs;
    nama_rs = getIntent().getExtras().getString("namarsakit");
    alamat_rs = getIntent().getExtras().getString("alamatrsakit");
    lat2 = getIntent().getExtras().getString("lat");
    longi2 = getIntent().getExtras().getString("longi");
    Double lintang_rs = Double.parseDouble(lat2);
    Double bujur_rs = Double.parseDouble(longi2);

        GeoPoint geopoint1 = new GeoPoint(
                (int) (lintang_rs * 1E6),
                (int) (bujur_rs * 1E6));
        locationB.setLatitude(geopoint1.getLatitudeE6() / 1E6);
        locationB.setLongitude(geopoint1.getLongitudeE6() / 1E6);

        DecimalFormat formatData = new DecimalFormat("#.#");
        float distance = (float) locationA.distanceTo(locationB) / 1000;
        String jarak;
        jarak = String.valueOf(formatData.format(distance));

        Drawable icon = getResources().getDrawable(R.drawable.marker); //
        icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon
                .getIntrinsicHeight());
        MyItemizedOverlay overlay = new MyItemizedOverlay(icon, this); //
        OverlayItem item = new OverlayItem(geopoint1, nama_rs,          //
                alamat_rs
                        + "\n\nJarak dari Posisi Anda : " + jarak + " km");
        overlay.addItem(item);
        mapView.getOverlays().add(overlay);
        Toast.makeText(MapDetailActivity.this,"nama = "+nama_rs+"lat tujuan= "+lintang_rs+"long tujuan = "+bujur_rs, Toast.LENGTH_SHORT).show();



    mapView.getController().animateTo(geopoint1);