2013-08-14 5 views
0

Я использую google Api версии-2 для карт google, я хочу обновить свою карту google, можно ли обновить с помощью api-version-2? мы можем использовать опцию VisualRefresh в api-v2?Обновить карту google с помощью Api-V2?

мой код, как ценам ниже

public class ClustringActivity extends Activity{ 
    View view; 
    MapView mapView; 
    GoogleMap map; 
    List<PointOfInterest> pointsOfInterest; 
    Clusterer<PointOfInterest> clusterer; 
    HashMap<Marker, PointOfInterest> markers = new HashMap<Marker, PointOfInterest>(); 
    HashMap<Marker, Cluster> clusters = new HashMap<Marker, Cluster>(); 

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

     map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 



    } 

    private void createDummyLocations() { 
     pointsOfInterest = new ArrayList<PointOfInterest>(); 
     pointsOfInterest.add(new PointOfInterest(new LatLng(12.9065534, 77.57748019999997), "Perry's house", "Very beautiful")); 

     pointsOfInterest.add(new PointOfInterest(new LatLng(12.9169534, 77.67748019999997), "Cottolengo", 
       "Greatest munye-munye I've ever tasted")); 
     pointsOfInterest.add(new PointOfInterest(new LatLng(12.915295, 77.573647), "Banashankari", 
       " Metro Station")); 
     pointsOfInterest.add(new PointOfInterest(new LatLng(12.905974, 77.580664), "17th Cross Road", 
       "Bus Station")); 
     pointsOfInterest.add(new PointOfInterest(new LatLng(12.91091, 77.581694), "Mirambika School for New Age", 
       "Sri Aurobindo Marg, 1st phase, Phase I, Bangalore, KA, India")); 
     pointsOfInterest.add(new PointOfInterest(new LatLng(12.904426, 77.573755), "Pizza HUt", 
       "BKN Plaza, Opposite Family Mart, 363/70, Kanakapura Road, Jarganahalli, JP Nagar VI Phase, Bangalore, Karnataka, India")); 
    } 

    private void initMap() { 
     if (mapView==null) return; 
     CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(12.910491, 77.580117)).zoom(15).build(); 

     map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
     map.setOnMarkerClickListener(new OnMarkerClickListener() { 

      @Override 
      public boolean onMarkerClick(Marker marker) { 
       if (markers.containsKey(marker)) { 
        Toast.makeText(ClustringActivity.this, "Poi clicked!", Toast.LENGTH_LONG).show(); 
       } else if (clusters.containsKey(marker)){ 
        Toast.makeText(ClustringActivity.this, "Cluster clicked!", Toast.LENGTH_LONG).show(); 
       } 
       return false; 
      } 
     }); 
    } 

    private void initClusterer() { 
     clusterer = new Clusterer<PointOfInterest>(this, map); 
     clusterer.addAll(pointsOfInterest); 
      Toast.makeText(getApplicationContext(), "refresh....", Toast.LENGTH_SHORT).show();  
     clusterer.setOnPaintingMarkerListener(new OnPaintingMarkerListener<PointOfInterest>() { 

      @Override 
      public void onMarkerCreated(Marker marker, PointOfInterest clusterable) { 
       markers.put(marker, clusterable); 
      } 

      @Override 
      public MarkerOptions onCreateMarkerOptions(PointOfInterest clusterable) { 
       PointOfInterest poi = (PointOfInterest) clusterable; 
       return new MarkerOptions().position(clusterable.getPosition()).title(poi.getName()).snippet(poi.getDescription()); 
      } 
     }); 

     clusterer.setOnPaintingClusterListener(new OnPaintingClusterListener() { 

      @Override 
      public void onMarkerCreated(Marker marker, Cluster cluster) { 
       clusters.put(marker, cluster); 
      } 

      @Override 
      public MarkerOptions onCreateClusterMarkerOptions(Cluster cluster) { 

       /*View marker = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.custom_marker_layout, null); 
       TextView numTxt = (TextView) marker.findViewById(R.id.num_txt); 
       numTxt.setText(cluster.getWeight());*/ 

       return new MarkerOptions() 
         .title("Clustering " + cluster.getWeight() + " items") 
         .position(cluster.getCenter()) 
         .icon(BitmapDescriptorFactory.fromBitmap(getClusteredLabel(Integer.valueOf(cluster.getWeight()).toString(), 
           ClustringActivity.this))); 
         /*.icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(ClustringActivity.this, marker)));*/ 
      } 
     }); 

    } 

    private Bitmap getClusteredLabel(String cnt, Context ctx) { 
     Resources r = ctx.getResources(); 
     Bitmap res = BitmapFactory.decodeResource(r, R.drawable.custom_marker); 
     res = res.copy(Bitmap.Config.ARGB_8888, true); 
     Canvas c = new Canvas(res); 

     Paint textPaint = new Paint(); 
     textPaint.setAntiAlias(true); 
     textPaint.setTextAlign(Paint.Align.CENTER);  
     textPaint.setTypeface(Typeface.DEFAULT_BOLD); 
     textPaint.setColor(Color.BLUE); 
     textPaint.setTextSize(40); 


     c.drawText(cnt, res.getWidth()/3 +textPaint.getTextSize()/4, res.getHeight()/2 , textPaint); 

     return res;  
    } 

Я попытался с помощью аннулированию(), но она будет применяться на View только пожалуйста, предложить некоторые идеи с помощью кода Java или, если это возможно JavaScript?

+0

Какая у вас проблема? Вставка большого количества несвязанного кода не решит его. –

+0

Я хочу обновить карту? вы можете ответить? –

+0

Не могу. Не совсем ясно, о чем вы спрашиваете. Вы можете указать [Short, Self Contained, Correct (Compilable), Example] (http://sscce.org/), скриншоты, фактические и ожидаемые результаты. –

ответ

0

Похоже, вы используете this library. Глядя на код, похоже, чтобы заставить обновления, вы хотите позвонить:

clusterer.forceUpdate()

Это должно повторно кластер все в поле зрения.

+0

Я использую этот api [link] (https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/MapView) –

Смежные вопросы