AndroidのユーザーごとにGoogleマップを表示するためのコードを実際に作成しました。ユーザーは、緯度と経度を取得するために JSON で使用した編集テキストに場所を入力し、地図をその緯度と経度に向けました。今私が直面している問題は、ユーザーが場所という名前の変数に入力した場所を保存し、JSON で dat 変数を渡したことです。しかし、プログラムを実行して場所を入力すると、マップはハイデラバードの近くを指しています。
このコードをタブビューに実装しました これが私のコードです...
ここでの基本的な問題は、json からの緯度と経度が他のページに渡されていないことです...
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.mapview);
Et = (EditText) findViewById(R.id.edt);
Bt = (Button) findViewById(R.id.Search);
location = Et.getText().toString();
final String readTwitterFeed = readTwi("http://maps.googleapis.com/maps/api/geocode/json?address=+location+&sensor=false");
Bt.setOnClickListener(new OnClickListener()
{
String strUrl,lon;
public void onClick(View v)
{
try
{
JSONObject jsonObject =new JSONObject(readTwitterFeed).getJSONArray("results").getJSONObject(0).getJSONObject("geometry").getJSONObject("location");
strUrl=jsonObject.getString("lat");
lon=jsonObject.getString("lng");
Log.i("location",strUrl);
Log.i("longtin",lon);
}
catch (Exception e)
{
e.printStackTrace();
}
Intent intent=new Intent(MapView.this,MapsActivity.class);
intent.putExtra("lat",strUrl);
intent.putExtra("lng",lon);
startActivity(intent);
}
});
}
private String readTwi(String url)
{
StringBuilder builder = new StringBuilder();
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse response = client.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(content));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
} else {
Log.e(MapView.class.toString(), "Failed to download file");
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return builder.toString();
}