안드로이드 개발 질문/답변
(글 수 45,052)
package com.TaxiDirect;
import java.io.BufferedReader;
import java.io.IOException;
import
java.io.InputStreamReader;
import java.net.HttpURLConnection;
import
java.net.MalformedURLException;
import java.net.URL;
import
java.util.ArrayList;
import java.util.List;
import android.graphics.Canvas;
import
android.graphics.drawable.Drawable;
import android.os.Bundle;
import
android.view.View;
//import android.widget.LinearLayout;
import com.google.android.maps.GeoPoint;
import
com.google.android.maps.ItemizedOverlay;
import
com.google.android.maps.MapActivity;
import
com.google.android.maps.MapView;
import
com.google.android.maps.OverlayItem;
public class TaxiDirectActivity extends MapActivity {
private
MapView mapView;
String id1, pwd1;
String
myResult;
String[] position={"0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17"};
//List mapOverlays;
//Drawable drawableName;
//Drawable drawableAddr;
// MyItemizedOverlay itemizedOverlay;
//MyItemizedOverlay itemizedOverlay2;
@Override
protected void
onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.mapview);
mapView
= (MapView)
findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapView.setClickable(true);
//Drawable
marker =
getResources().getDrawable(R.drawable.mapmarker);
Drawable
marker1 =
getResources().getDrawable(R.drawable.mapmarker1);
Drawable
marker2 =
getResources().getDrawable(R.drawable.mapmarker2);
Drawable
marker3 =
getResources().getDrawable(R.drawable.mapmarker3);
Drawable
marker4 =
getResources().getDrawable(R.drawable.mapmarker4);
Drawable
marker5 =
getResources().getDrawable(R.drawable.mapmarker5);
Drawable
marker6 =
getResources().getDrawable(R.drawable.mapmarker6);
marker1.setBounds(0,
0,
marker1.getIntrinsicWidth(),
marker1.getIntrinsicHeight());
InterestingLocations funPlaces = new
InterestingLocations(marker1);
mapView.getOverlays().add(funPlaces);
GeoPoint pt = funPlaces.getCenter(); // 첫 번째 점을
가져옴
mapView.getController().setCenter(pt);
mapView.getController().setZoom(15);
}
@Override
protected boolean isLocationDisplayed()
{
return false;
}
@Override
protected boolean isRouteDisplayed()
{
return false;
}
@SuppressWarnings("rawtypes")
class InterestingLocations
extends ItemizedOverlay {
private List<OverlayItem>
locations = new ArrayList<OverlayItem>();
private Drawable
marker;
public
InterestingLocations(Drawable marker)
{
super(marker);
this.marker=marker;
String
str;
// 관심 지점들
생성
//String taxicode =
position[0].toString();
try
{
URL url = new URL("http://xxx.xx.82.245:8080/A/FTP_11_xxx/jspdb/selectDB.jsp");
// URL 설정
HttpURLConnection http =
(HttpURLConnection) url.openConnection(); // 접속
// Toast.makeText(this, "조회했어용 아잉",
0).show();
InputStreamReader tmp = new
InputStreamReader(http.getInputStream(), "EUC-KR");
BufferedReader reader = new
BufferedReader(tmp);
str =
reader.readLine();
position = str.split("~");
for(int i=1;i<17 ;i+=3)
{
if(position[i].toString()=="")
break;
double x =
Double.parseDouble(position[i]);
double
y =
Double.parseDouble(position[i+1]);
GeoPoint taxiPoint = new GeoPoint((int)(x*1000000),(int)(y*1000000));
locations.add(new OverlayItem(taxiPoint,
position[i-1], position[i-1]));
populate();
}
} catch
(MalformedURLException e) {
//Toast(this, "실패1",
0).show();
} catch (IOException e)
{
//Toast(this, "실패2", 0).show();
} // try
}
/*mapView = (MapView)
findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapOverlays = mapView.getOverlays();
drawable =
getResources().getDrawable(R.drawable.marker);
itemizedOverlay = new MyItemizedOverlay(drawable,
mapView);
GeoPoint point = new
GeoPoint((int)(51.5174723*1E6),(int)(-0.0899537*1E6));
OverlayItem overlayItem = new
OverlayItem(point, "Tomorrow Never Dies (1997)", "(M gives Bond his mission in
Daimler car)");
itemizedOverlay.addOverlay(overlayItem);
GeoPoint
point2 = new GeoPoint((int)(51.515259*1E6),(int)(-0.086623*1E6));
OverlayItem overlayItem2 = new
OverlayItem(point2, "GoldenEye (1995)", "(Interiors Russian defence ministry
council chambers in St Petersburg)");
itemizedOverlay.addOverlay(overlayItem2);
mapOverlays.add(itemizedOverlay);
}
protected boolean isRouteDisplayed() {
return false;
}*/
@Override
public void draw(Canvas
canvas, MapView mapView, boolean shadow)
{
super.draw(canvas, mapView,
shadow);
boundCenterBottom(marker);
}
@Override
protected OverlayItem
createItem(int i) {
return
locations.get(i);
}
@Override
public int size()
{
return
locations.size();
}
}
public
void myClickHandler(View target)
{
switch(target.getId()) {
case
R.id.sat:
mapView.setSatellite(true);
break;
case
R.id.normal:
mapView.setSatellite(false);
mapView.setStreetView(false);
mapView.setTraffic(false);
break;
}
}
}안드로이드 맵에 택시 마커를 띄웠습니다.
거기에 마우스 클릭을 하면 택시의 정보를 담으려하는데 말풍선소스를 구글링해봐도 알 길이 없네요.
.
간단한 예제나 방법알려주시면 정말 감사하겠씁니다.(__)




onTap을 찾아보시면 될것 같습니다.