2015-08-18 154 views
0

我有一個簡單的Google Map(V2)折線,基於5個LanLong對象。我需要:谷歌地圖折線屏幕座標

1)使此點擊(我假設可以通過實現onClickListener界面上的折線類的子類)

ArrayList<LatLng> coordinates = new ArrayList<>(); 

     coordinates.add(new LatLng(37.345, 56.432)); 
     coordinates.add(new LatLng(39.234, 50.451)); 
     coordinates.add(new LatLng(45.798, 24.345)); 
     coordinates.add(new LatLng(34.783, 70.345)); 
     coordinates.add(new LatLng(14.234, 23.453)); 

     PolylineOptions path = new PolylineOptions(); 
     path.addAll(coordinates); 
     path.width(5); 
     path.color(Color.RED); 
     path.geodesic(true); 

2)來完成。如果點擊的是折線 - 在最近的一組標記這條折線的頂點。我認爲我可以獲取觸摸事件的屏幕座標,但是如何獲取此多段線的頂點點的屏幕座標?

或者也許有更簡單的方法?

回答

0

我發現了一個對我的問題的答案。我爲任何奮鬥的人發佈onMapClick()方法的代碼:

@Override 
    public void onMapClick(LatLng clickCoordinates) { 
     for (LatLng pathCoordinates : path.getPoints()) { 
      float[] results = new float[1]; 
      Location.distanceBetween(clickCoordinates.latitude, clickCoordinates.longitude, 
        pathCoordinates.latitude, pathCoordinates.longitude, results); 

      if (results[0] < 100) { 
       if (currentMarker != null) { 
        currentMarker.remove(); 
       } 
       currentMarker = googleMap.addMarker(new MarkerOptions().position(new LatLng(pathCoordinates.latitude, pathCoordinates.longitude))); 
      } 
     } 
    }