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