public class Mapa extends FragmentActivity implements LocationListener {
public GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mapa);
int status =GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext());
如果(status!=ConnectionResult.Success){//Google Play服务不可用,则显示状态
int requestCode = 10;
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, this, requestCode);
dialog.show();
}else {
获取对SupportMapFragment的引用
SupportMapFragment fm = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map);
从片段获取GoogleMap对象
map = fm.getMap();
map.setMyLocationEnabled(true);
LocationManager locationManager = (LocationManager)
getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
获取最佳提供程序的名称
String provider = locationManager.getBestProvider(criteria, true);
正在获取当前位置
Location location = locationManager.getLastKnownLocation(provider);
if(location!=null){
onLocationChanged(location);
}
locationManager.requestLocationUpdates(provider, 20000, 0, this);
}
}
public void onLocationChanged(Location location) {
TextView tvLocation = (TextView) findViewById(R.id.tv_location);
获取当前位置的纬度
double latitude = location.getLatitude();
double longitude = location.getLongitude();
LatLng latLng = new LatLng(latitude, longitude);
在Google Map中显示当前位置
map.moveCamera(CameraUpdateFactory.newLatLng(latLng));
缩放谷歌地图
map.animateCamera(CameraUpdateFactory.zoomTo(15));
在TextView tv_location中设置纬度和经度
tvLocation.setText("Latitude:" + latitude + ", Longitude:"+ longitude );
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
这是我使用arraylist的类
public void getPontos(View view) {
String codigo;
codigo = linhaList.get(spinner.getSelectedItemPosition()).getCodigo();
new WebServiceGetPontosLinha().execute(codigo);
}
private class WebServiceGetPontosLinha extends
AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(MainActivity.this, "",
getResources().getText(R.string.connecting), true, false);
}
@Override
protected Void doInBackground(String... params) {
WebServiceConsumer webServiceConsumer = new WebServiceConsumer(
MainActivity.this);
pontoList = webServiceConsumer.getPontos(params[0]);
return null;
}
@Override
protected void onPostExecute(Void result) {
progressDialog.dismiss();
pontoArrayAdapter = new ArrayAdapter<PontosLinhas>(
MainActivity.this,
android.R.layout.simple_spinner_dropdown_item, pontoList);
spinner1.setAdapter(pontoArrayAdapter);
}
}
我如何像图像一样在地图上绘制旋转器的内容?
这涉及很多细节,不需要你,但希望你得到的图片。
我开发了一个应用程序,其中包括在地图上显示消火栓的位置,这是我如何将消火栓加载到地图上的:
private class LoadHydrantsToMapTask extends
AsyncTask<Hydrant, Integer, List<MarkerOptions>> {
private int loadHydrantsGoal = 0;
public LoadHydrantsToMapTask(int loadHydrantsGoal) {
this.loadHydrantsGoal = loadHydrantsGoal;
}
// Before running code in separate thread
@Override
protected void onPreExecute() {
Device.lockOrientation((Activity)context);
// Create a new progress dialog.
progressDialog = new ProgressDialog(context);
// Set the progress dialog to display a horizontal bar .
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage(context
.getString(R.string.adding_hydrants));
// This dialog can't be canceled by pressing the back key.
progressDialog.setCancelable(false);
// This dialog isn't indeterminate.
progressDialog.setIndeterminate(false);
// The maximum number of progress items is 100.
progressDialog.setMax(loadHydrantsGoal);
// Set the current progress to zero.
progressDialog.setProgress(0);
// Display the progress dialog.
progressDialog.show();
}
// The code to be executed in a background thread.
@Override
protected List<MarkerOptions> doInBackground(Hydrant... hydrants) {
List<MarkerOptions> markers = new ArrayList<MarkerOptions>();
for (Hydrant hydrant : hydrants) {
final String hydrant_type = hydrant.getHydrantType();
final String hydrant_icon_path = hydrant.getIconPath();
double latitude = hydrant.getLatitude();
double longitude = hydrant.getLongitude();
final LatLng position = new LatLng(latitude, longitude);
final String address = hydrant.getAddress();
final String addressNumber = hydrant.getAddressNumber();
final String addressremark = hydrant.getAddressRemark();
final String remark = hydrant.getRemark();
BitmapDescriptor icon = BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_RED);
if (!hydrant_icon_path.isEmpty()) {
File iconfile = new File(hydrant_icon_path);
if (iconfile.exists()) {
BitmapDescriptor loaded_icon = BitmapDescriptorFactory
.fromPath(hydrant_icon_path);
if (loaded_icon != null) {
icon = loaded_icon;
} else {
Log.e(TAG, "loaded_icon was null");
}
} else {
Log.e(TAG, "iconfile did not exist: "
+ hydrant_icon_path);
}
} else {
Log.e(TAG, "iconpath was empty on hydrant type: "
+ hydrant_type);
}
StringBuffer snippet = new StringBuffer();
if (!address.isEmpty())
snippet.append("\n" + address + " " + addressNumber);
if (addressremark.isEmpty())
snippet.append("\n" + addressremark);
if (!remark.isEmpty())
snippet.append("\n" + remark);
markers.add(new MarkerOptions().position(position)
.title(hydrant_type).snippet(snippet.toString())
.icon(icon));
publishProgress(markers.size());
}
return markers;
}
// Update the progress
@Override
protected void onProgressUpdate(Integer... values) {
// set the current progress of the progress dialog
progressDialog.setProgress(values[0]);
}
// after executing the code in the thread
@Override
protected void onPostExecute(List<MarkerOptions> markers) {
GoogleMap map = GoogleMapsModule.getInstance().getMap();
for (MarkerOptions marker : markers) {
if (marker != null)
map.addMarker(marker);
}
if (markers.size() == mHydrants.size()) {
setAllHydrantAdded(true);
setNearbyHydrantsAdded(true);
} else {
setNearbyHydrantsAdded(true);
}
Device.releaseOrientation((Activity) context);
}
}
当我调用任务时,我有一个消火栓对象的列表。要将列表解析为AsyncTask,我将列表转换为数组:
new LoadHydrantsToMapTask(hydrants.size()).execute(hydrants
.toArray(new Hydrant[hydrants.size()]));
我在学Android。现在我正在开发一个使用地图API的应用程序。到目前为止,我做了以下操作:-我长时间点击了地图,并打开了一个新的ActivityCyclickedMap,其中显示了我点击的位置的lat和lon-我点击了save按钮,并将lat和lon添加到服务器和我的本地数据库中 我想做的事情是这样的:-当我打开地图时,我想让它显示一个标记,使用数据库中的lat和lon
问题内容: 我试过了 但它产生错误: 任何的想法? 问题答案: 好吧,错误消息很清楚:不是实体。如果要映射基本元素的集合,请使用批注(来自Hibernate)或批注(来自JPA 2.0)。 因此,假设您使用的是Hibernate Annotations 3.4,请尝试以下操作: 或者,使用泛型时: 如果您使用的是Hibernate Annotations 3.5+,则更喜欢JPA 2.0注释: 或
我有一个使用Google静态地图的JAVA项目要做,经过几个小时的工作,我不能得到一个东西工作,我会解释一切,我希望有人能帮助我。 我使用的是静态地图(480pixelsx480pixels),地图的中心是lat=47,lon=1.5,缩放级别是5。 现在我需要的是当我点击这个静态地图上的一个像素时能够得到lat和lon。经过一些搜索,我发现我应该使用墨卡托投影(对吗?),我还发现每个变焦级别在水
我有一个由世界各地的城市组成的lat/lon值的坐标列表。我已经拼凑了一张美国的SVG地图,我想把世界上的主要城市作为别针显示在SVG地图的顶部。到目前为止,我已经弄清楚了,我所显示的地图投影是美国的墨卡托投影,那么下一步是,我如何获得每个城市地图的x/y坐标?一旦我从lat/lon得到墨卡托投影,那么如何将它转换为x/y值,然后根据地图的大小转换为相对x/y值呢?
我对R相对较新。我正在尝试从 netCDF 文件中获取温度数据的不同点(纬度、纬度)的时间序列。我的示例数据文件在这里,这里是小文件。我已经尝试了netCDF包和到目前为止我使用的代码 有人能帮我得到一个时间序列的数据帧(第一列)和另一列中某个特定点(lat,lon)的数据值吗。在这种情况下,我正在寻找一个特定纬度点(并对许多兴趣点重复)和给定变量(在本例中为tasmin)的时间序列(1950-0
我有一个geopandas df和一列形状优美的点对象。我想从shapely point对象中提取坐标(lat/lon),以生成纬度和经度列。一定有一个简单的方法可以做到这一点,但我想不出来。 我知道你可以像这样提取单个坐标: 我可以为整个df创建一个函数,但我认为有一种更高效、更优雅的方法。