作者:程溯
简介
Demo按类型往地图里添加POI兴趣点,并添加兴趣点的名称(name)与详细信息(detail)。地图上不同类型的POI兴趣点采用不同符号来表示。
示例数据
Data: mypoi.udb、mypoi.udd、mypoi.smwu
关键类型/成员
GeoStyle类
GeoPoint类
Environment类
WorkspaceConnectionInfo类
Map.setWorkspace()方法
MapControl.addGeometryAddedListener()方法
DatasetVector.query()方法
Recordset.edit()方法
Recordset.setGeometry()类
Recordset.setFieldValue()方法
Recordset.update()方法
使用步骤
(1) 将iMobile for android根目录的libs目录下的armeabi目录、com.supermap.data.jar、
com.supermap.mapping.jar拷贝至MyPoi工程目录的libs目录。
(2) elcipse导入MyPoi工程,如果需要,修改工程属性。
(3)需要将数据文件拷贝至android手机或模拟器的指定目录下。
(4) 编译运行程序,通过类型下拉列表选择POI类型,单击“添加”按钮,设置添加操作状态。
(5) 在地图上需要的位置单击,添加兴趣点,添加之后再单击“提交”按钮,提交操作。 在弹出的页面中填写名称和详细信息,单击“添加”按钮返回地图页面,地图窗口中显示了POI的符号和名称。
代码块
MainActivity:
import com.supermap.data.*;
import com.supermap.mapping.*;
import com.supermap.test.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.ZoomControls;
public class MainActivity extends Activity implements OnTouchListener,
GeometryAddedListener {
private final int REQUEST_INFO = 1001;
private MapControl mapControl;
private Workspace workspace;
private MapView mapView;
private ZoomControls zoomControls;
private Spinner spinnerPoiType;
private Button addButton;
private Button add;
private DatasetVector datasetVector;
private String strSymbolName = "银行";
private int nSymbolID = 907971;
private GeometryEvent curEvent;
private static final String[] types = { "银行", "医院", "小区", "停车场", "商场",
"公园", "药店", "小区", "餐厅" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Environment.setLicensePath(getString(R.string.license_path));
Environment.setTemporaryPath(getString(R.string.temp_path));
Environment.setWebCacheDirectory(getString(R.string.cache_path));
Environment.initialization(this);
setContentView(R.layout.main);
openData();
initView();
}
private void openData() {
workspace = new Workspace();
WorkspaceConnectionInfo info = new WorkspaceConnectionInfo();
info.setServer(getString(R.string.data_path));
info.setType(WorkspaceType.SMWU);
if (workspace.open(info)) {
mapView = (MapView) findViewById(R.id.mapview);
mapControl = mapView.getMapControl();
mapControl.getMap().setWorkspace