2013-04-09 4 views
0

Google지도에 여러 Geopoint 위치를 플롯하려는 동안이 오류가 발생합니다. PHP와 JSON을 통해 MySQL 데이터베이스에서 위도와 경도를 읽습니다. 나는 Couldn't get connection factory client, Couldn't get connection factory client - fighting with Google Maps, Android MapActivity : Couldn't get connection factory client과 같은 주요 예를 살펴 보았다.
2 개의 다른 키를 생성하고 동일한 오류를 반환했기 때문에 API 키가 유효하지 않음을 확인할 수 있습니다. 또한 API 레벨 문제가 아니기 때문에 API 레벨 17 및 레벨 8에서 애플리케이션을 실행하려고 시도했지만 여전히 기쁨이 없습니다. 이건 내 ItemizedOverlay.java이
Google지도에 추가 할 지오 포인트를 가져 오지 않습니다. 연결 팩토리 클라이언트를 얻을 수 없습니다.

import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.graphics.drawable.Drawable; 
import android.net.ParseException; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.Toast; 

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 

import com.google.android.maps.GeoPoint; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapController; 
import com.google.android.maps.MapView; 
import com.google.android.maps.Overlay; 
import com.google.android.maps.OverlayItem; 

public class mapview extends MapActivity 
{ 

//protected MapView mapview; 

JSONArray jarray; 
String result=null; 
InputStream is=null; 
StringBuilder sb=null; 

double LAT; 
double LNG; 

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mapview); 

    MapView mapview = (MapView) findViewById(R.id.mapview); 
    mapview.setBuiltInZoomControls(true); 

    //ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 

    try 
    { 

     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("http://10.0.2.2/displaymarkers.php"); 
     //httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity entity = response.getEntity(); 
     is = entity.getContent(); 

    } 

    catch(Exception e) 
    { 
     Log.e("log_tag", "Error in http connection"+e.toString()); 
    } 


     try{   


     jarray = new JSONArray("$json_output[]"); 
     JSONObject json_data = null; 
       for(int i = 0; i < jarray.length(); i++) 
       { 
        json_data = jarray.getJSONObject(i); 

        LAT=json_data.getDouble("lat"); 
        LNG=json_data.getDouble("lng"); 

        GeoPoint point = new GeoPoint((int)(LAT * 1E6), (int)(LNG * 1E6)); 
        OverlayItem overlayitem = new OverlayItem(point, "TEXT", null); 

        List<Overlay> mapOverlays = mapview.getOverlays(); 
        Drawable drawable = this.getResources().getDrawable(R.drawable.marker); 
        myItemizedOverlay itemizedoverlay = new myItemizedOverlay(drawable, this); 

        MapController mapController = mapview.getController(); 

        //mapController.animateTo(point); 
        mapController.setZoom(8); 

        itemizedoverlay.addOverlay(overlayitem); 
        mapOverlays.add(itemizedoverlay); 
       } 
      } 
      catch(JSONException e1) 
      { 
      Toast.makeText(getBaseContext(), "Error displaying contents" ,Toast.LENGTH_LONG).show(); 
      }  
       catch (ParseException e1) 
       { 
       e1.printStackTrace(); 
       } 
    } 
    @Override 
    protected boolean isRouteDisplayed() 
    { 
     return false; 
    } 
} 

입니다 : 내가 코드를 실행하면 그것은
가 여기 내 mapview.java 코드 맵에게 아무런 문제가 표시되지 않습니다 다음 "오류 표시 내용"내 예외 토스트 메시지에 도달 코드 : 사전에 내가 얻을 어떤 도움을 주셔서 감사합니다 것

import java.util.ArrayList; import android.app.AlertDialog; import android.content.Context; import android.graphics.drawable.Drawable; import com.google.android.maps.OverlayItem; import com.google.android.maps.ItemizedOverlay; public class myItemizedOverlay extends ItemizedOverlay { private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>(); private Context mContext; public myItemizedOverlay(Drawable marker, Context context) { super(boundCenterBottom(marker)); mContext = context; } public void addOverlay(OverlayItem overlay) { mapOverlays.add(overlay); this.populate(); } @Override protected OverlayItem createItem(int i) { return mapOverlays.get(i); } @Override public int size() { return mapOverlays.size(); } @Override protected boolean onTap(int index) { OverlayItem item = mapOverlays.get(index); AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); dialog.setTitle(item.getTitle()); dialog.setMessage(item.getSnippet()); dialog.show(); return true; } } 

, 감사합니다.

답변

0

최근에 이러한 키를 생성 한 경우 API v1이 사용되지 않으며 작동하지 않으므로 결과를 얻을 수 없습니다.

당신은지도 API v2로 전환 할 수 있습니다 https://developers.google.com/maps/documentation/android/

새로운 API는 API v1에있는 모든 코드를 공유하지 않기 때문에, 기존의 코드를 사용하지 마십시오.

+0

내가 입력 할 수있는 유일한 옵션이 될 수 있습니다. 나는 당신보다 더 좋은 대답을 할 수 있을지 의심 스럽습니다. 그래서 나는 그것을 받아 들일 것이고 새로운 버전으로 다시 시도 할 것입니다. 다시 한번 감사드립니다. – jibbajava