java - 如何在 map v2 中显示标记并在另一个类中调用坐标?

标签 java android eclipse google-maps

我需要帮助。当坐标在另一个类中时如何在 map 中显示标记?

这里我在同一类中有数组列表和对话框警报

AlertDialog.Builder mAlert = new AlertDialog.Builder(HotelBintang.this);

            view = getLayoutInflater().inflate(R.layout.alert_background, null);
            ImageView Content_img = (ImageView)view.findViewById(R.id.imageView1);
            TextView Content_txt1 = (TextView)view.findViewById(R.id.textView1);

            Content_img.setImageResource(item_detail.get(position).getImageNumber());
            Content_txt1.setText(item_detail.get(position).getName());

            mAlert.setTitle(item_detail.get(position).getName()).
            setView(view).
            setPositiveButton("Get Coordinate", new DialogInterface.OnClickListener()
            {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    Intent intent = new Intent(Hotel.this, MapsActivity.class);
                    intent.putExtra("lon", item_detail.get(position).lon);
                    intent.putExtra("lat", item_detail.get(position).lat);
                    HotelBintang.this.startActivity(intent);
                }

            }).create().show();



private ArrayList<ItemDetail> GetSearchResult() 
{
    ArrayList<ItemDetail> result = new ArrayList<ItemDetail>();

    ItemDetail item_detail = new ItemDetail();
    item_detail.setName("Taman Sari");
    item_detail.setImageNumber(images[0]);
    item_detail.ALoc(-6.917222222, 106.9758333);
    result.add(item_detail);

    item_detail = new ItemDetail();
    item_detail.setName("Taman Sari");
    item_detail.setImageNumber(images[0]);
    item_detail.ALoc(-6.917222222, 106.9758333);
    result.add(item_detail);


    return result;
}

我希望当我单击“获取坐标”按钮时,在 map 中显示一个标记。

这是我的 MapsActivity 类:

public class MapsAcivity extends FragmentActivity {
final int RQS_GooglePlayServices = 1;
private GoogleMap myMap;
String lon = getIntent().getExtras().getString("lon");
String lat = getIntent().getExtras().getString("lat");

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.peta_layout);
    FragmentManager myFragmentManager = getSupportFragmentManager();
    SupportMapFragment mySupportMapFragment = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
    myMap = mySupportMapFragment.getMap();

   LatLng sukabumi = new LatLng(-7.149949,106.799254);
    MarkerOptions markerSukabumi = new MarkerOptions();
    markerSukabumi.position(sukabumi);
    markerSukabumi.title("Sukabumi");
 markerSukabumi.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
    myMap.addMarker(markerSukabumi);


    myMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
    myMap.getUiSettings().setCompassEnabled(true);
    myMap.getUiSettings().setZoomControlsEnabled(true);
    myMap.getUiSettings().setMyLocationButtonEnabled(true);
    myMap.setMyLocationEnabled(true);
    myMap.animateCamera(CameraUpdateFactory.newLatLngZoom(sukabumi, 9)); 
    myMap.setOnMarkerClickListener(new OnMarkerClickListener() {

        @Override
        public boolean onMarkerClick(Marker arg0) {
            // TODO Auto-generated method stub

            try {
                StringBuilder urlString = new StringBuilder();                      
                String daddr = (String.valueOf(arg0.getPosition().latitude)+","+String.valueOf(arg0.getPosition().longitude)); 
                urlString.append("http://maps.google.com/maps?f=d&hl=en"); 
                urlString.append("&saddr="+String.valueOf(myMap.getMyLocation().getLatitude())+","+String.valueOf(myMap.getMyLocation().getLongitude())); 
                urlString.append("&daddr="+daddr);
                Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(urlString.toString()));
                startActivity(i);
            } catch (Exception ee) {
                Toast.makeText(getApplicationContext(), "Please Turn On your GPS.", Toast.LENGTH_LONG).show();
            }
            return false;
        }
    });

请帮助我。

最佳答案

移动String lon = getIntent().getExtras().getString("lon");String lat = getIntent().getExtras().getString("lat") ; 到您的 onCreate() 方法并使用 Double.parseDouble(String s)创建市场时。像这样:LatLng sukabumi = new LatLng(Double.parseDouble(lat),Double.parseDouble(lon));

关于java - 如何在 map v2 中显示标记并在另一个类中调用坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21768792/

相关文章:

java - GWT AbsolutePanel 未在浏览器中显示

java - 搜索 View 折叠时搜索图标被非功能性溢出替换

android - java.net.协议(protocol)异常 : unexpected end of stream

java - 使用 pygtk 进行 Android 应用程序开发

java - 在 eclipse Juno 中发布 Tomcat 6 时出错

java - 将 DTO 转换为域模型,然后使用 lambda 返回

java - 我应该选择什么方式来代替乘法重载?

带有按钮的 JavaFX.TitledPane

java - 您可以通过编程方式在 Java 中注册 ActiveX dll 吗?

linux - 在 Eclipse 中设置 bash 脚本