/**
*
*/
package coolbuy360.control;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.PoiOverlay;
import com.baidu.mapapi.map.PopupClickListener;
import com.baidu.mapapi.map.PopupOverlay;
import com.baidu.mapapi.search.MKPoiInfo;
import com.baidu.mapapi.search.MKSearch;
import coolbuy360.searchhealth.BDrugStoreRoute;
import coolbuy360.searchhealth.R;
/**
* ҩ���Dz�
* @author yangxc
*/
public class MyPoiOverlay extends PoiOverlay {
MKSearch mSearch;
MapView mMapView;
Activity mActivity;
PopupOverlay pop;
public MyPoiOverlay(Activity activity, MapView mapView, MKSearch search) {
super(activity, mapView);
mSearch = search;
mMapView = mapView;
mActivity = activity;
}
@Override
protected boolean onTap(int i) {
//super.onTap(i);
MKPoiInfo info = getPoi(i);
showPopup(info, (MyMapView) mMapView, mActivity);
/*if (info.hasCaterDetails) {
mSearch.poiDetailSearch(info.uid);
}*/
return true;
}
/**
* @param info
*/
public static void showPopup(final MKPoiInfo info, MyMapView mMapView, final Activity mActivity) {
if (mMapView.pop == null) {
mMapView.pop = new PopupOverlay(mMapView, new PopupClickListener() {
@Override
public void onClickedPopup(int arg0) {
// TODO �Զ����ɵķ������
}
});
//((MyMapView)mMapView).pop = pop;
}
// ���������
View viewCache = mActivity.getLayoutInflater().inflate(
R.layout.map_poi_popview, null);
TextView nameTextView = (TextView) viewCache.findViewById(R.id.map_poi_popview_name);
nameTextView.setText(info.name);
TextView addressTextView = (TextView) viewCache.findViewById(R.id.map_poi_popview_address);
addressTextView.setText(info.address);
LinearLayout map_poi_popview_btn_route = (LinearLayout) viewCache.findViewById(R.id.map_poi_popview_btn_route);
map_poi_popview_btn_route.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO �Զ����ɵķ������
Intent toIntent = new Intent().setClass(
mActivity, BDrugStoreRoute.class);
toIntent.putExtra("endlatitude", info.pt.getLatitudeE6() / 1E6);
toIntent.putExtra("endlongitude", info.pt.getLongitudeE6() / 1E6);
toIntent.putExtra("storename", info.name);
mActivity.startActivity(toIntent);
}
});
LinearLayout map_poi_popview_btn_call = (LinearLayout) viewCache.findViewById(R.id.map_poi_popview_btn_call);
if (info.phoneNum == null || info.phoneNum.equals("")) {
map_poi_popview_btn_call.setVisibility(View.GONE);
ImageView map_poi_popview_btn_call_spliter = (ImageView) viewCache.findViewById(R.id.map_poi_popview_btn_call_spliter);
map_poi_popview_btn_call_spliter.setVisibility(View.GONE);
} else {
map_poi_popview_btn_call.setTag(info.phoneNum);
map_poi_popview_btn_call.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO �Զ����ɵķ������
String callNum = v.getTag().toString();
Intent intent = new Intent(Intent.ACTION_DIAL, Uri
.parse("tel:" + callNum));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mActivity.startActivity(intent);
}
});
}
// ����pop,����pop
mMapView.pop.showPopup(viewCache, info.pt, 30);
}
}