Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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_Android Maps_Android Maps Extensions - Fatal编程技术网

Android谷歌地图坐标

Android谷歌地图坐标,android,google-maps,android-maps,android-maps-extensions,Android,Google Maps,Android Maps,Android Maps Extensions,目前正在做一个包含谷歌地图的简单应用。我想链接到下一个活动,当用户点击一个设计的坐标,但它不工作,没有错误,请帮助我 double latitude = 1.34503109; double longitude = 103.94008398; LatLng latLng = new LatLng(latitude, longitude); gMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {

目前正在做一个包含谷歌地图的简单应用。我想链接到下一个活动,当用户点击一个设计的坐标,但它不工作,没有错误,请帮助我

double latitude = 1.34503109;

    double longitude = 103.94008398;

    LatLng latLng = new LatLng(latitude, longitude);

    gMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
        @Override
        public void onMapClick(LatLng latLng) {
            Intent i = new Intent(Activity_Selecting_Bus.this,
                    Activity_Bus_Selected.class);
            startActivity(i);

        }
    });

如果我理解正确,您在地图中设置了标记,当用户单击标记时,您将开始另一项活动。以下代码应该可以工作(在
SupportMapFragment
中):

如果您没有标记,并且想要监听某个位置,请单击此按钮:

getMap().setOnMapClickListener(new GoogleMap.OnMapClickListener() {
  @Override
  public void onMapClick(LatLng latLng) {
    // do the thing!
  }
});
在这种情况下,您可能希望在用户单击“足够近”到某个位置时启动活动。我使用这个包含方法的库

SphericalUtil.computeDistanceBetween(LatLng from, LatLng to)
返回两个
LatLng
s之间的距离,单位为米

编辑示例:

首先定义用户必须单击的位置,以及特定单击启动的活动:

private static final HashMap<LatLng, Class<? extends Activity>> sTargets = new HashMap();

static {
    sTargets.put(new LatLng(34.0204989,-118.4117325), LosAngelesActivity.class);
    sTargets.put(new LatLng(42.755942,-75.8092041), NewYorkActivity.class);
    sTargets.put(new LatLng(42.352711,-83.099205), DetroitActivity.class);
}

private static final int RANGE_METERS = 200 * 1000; // 200 km range

private static final hashMap很高兴我能帮忙,别忘了标记正确答案。祝你的应用程序好运!哪个坐标?抱歉打扰了,我的意思是我输入了一个目的地(坐标),当用户点击这个位置时,它会将它们链接到一个页面哦,我以为你已经把它们硬编码在一个数组中了,或者事先用其他方法得到了它们。我不知道你的数据来自哪里,也不知道它代表什么,所以我不可能告诉你如何存储它。如果你需要帮助,请提出另一个问题。
private static final HashMap<LatLng, Class<? extends Activity>> sTargets = new HashMap();

static {
    sTargets.put(new LatLng(34.0204989,-118.4117325), LosAngelesActivity.class);
    sTargets.put(new LatLng(42.755942,-75.8092041), NewYorkActivity.class);
    sTargets.put(new LatLng(42.352711,-83.099205), DetroitActivity.class);
}

private static final int RANGE_METERS = 200 * 1000; // 200 km range
getMap().setOnMapClickListener(new GoogleMap.OnMapClickListener() {
    @Override
    public void onMapClick(LatLng input) {
        for(Map.Entry<LatLng,<? extends Activity>> entry : sTargets.entrySet()) {
            LatLng ll = entry.getKey();
            boolean inRange = SphericalUtil.computeDistanceBetween(input, ll) < RANGE_METERS;
            if (inRange) {
                Class<? extends Activity> cls = entry.getValue();
                Intent i = new Intent(getActivity(), cls);
                getActivity().startActivity(i);
                break; // stop calculating after first result
            }
        }
    }
});