- 浏览: 7331039 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
实现指南针代码:
package com.geoserver.osmdroid; import android.content.Context; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.view.View; /** * 自定义指南针实现 * * @Title: * @Description: 实现TODO * @Copyright:Copyright (c) 2011 * @Company: * @Date:2012-8-24 * @author longgangbai * @version 1.0 */ public class CompassView extends View { private Drawable mCompass; private float mAzimuth = 0; private boolean mSideBottom; private int PADDING = 2; public CompassView(Context ctx, final boolean sideBottom) { super(ctx); this.mCompass = ctx.getResources().getDrawable(R.drawable.arrow_n); mSideBottom = sideBottom; } @Override protected void onDraw(Canvas canvas) { canvas.save(); if (mSideBottom) { canvas.rotate(360 - mAzimuth, PADDING + mCompass.getMinimumWidth() / 2, PADDING + mCompass.getMinimumHeight() / 2); mCompass.setBounds(PADDING, PADDING, PADDING + mCompass.getMinimumWidth(), PADDING + mCompass.getMinimumHeight()); } else { canvas.rotate(360 - mAzimuth, PADDING + mCompass.getMinimumWidth() / 2, this.getHeight() - mCompass.getMinimumHeight() /2 - PADDING); mCompass.setBounds(PADDING, this.getHeight() - mCompass.getMinimumHeight() - PADDING, PADDING + mCompass.getMinimumWidth(), this.getHeight() - PADDING); } mCompass.draw(canvas); canvas.restore(); super.onDraw(canvas); } public void setAzimuth(float aAzimuth) { mAzimuth = aAzimuth; } }
界面类:
package com.geoserver.osmdroid; import org.osmdroid.tileprovider.tilesource.TileSourceFactory; import org.osmdroid.util.GeoPoint; import org.osmdroid.views.MapController; import org.osmdroid.views.MapView; import android.app.Activity; import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.widget.RelativeLayout; /** * 官网: http://code.google.com/p/osmdroid/ 功能: 基本功能有:查看地图、缩放地图、单点移动、多点触控等 * @Title: * @Description: 实现TODO * @Copyright:Copyright (c) 2011 * @Company:易程科技股份有限公司 * @Date:2012-7-31 * @author longgangbai * @version 1.0 */ public class GeoServerosmdroidActivity extends Activity { private MapView mapView; private CompassView compassView; private SensorManager sensorManager; private boolean mCompassEnabled=true; private boolean mDrivingDirectionUp=true; private boolean mNorthDirectionUp=true; private boolean sideBottom=true; private float mLastSpeed; private RelativeLayout relationLayout; private MapController mapController; private final SensorEventListener mListener = new SensorEventListener() { private int iOrientation = -1; public void onAccuracyChanged(Sensor sensor, int accuracy) { } public void onSensorChanged(SensorEvent event) { if (iOrientation < 0) iOrientation = ((WindowManager) GeoServerosmdroidActivity.this.getSystemService(Context.WINDOW_SERVICE)) .getDefaultDisplay().getOrientation(); compassView.setAzimuth(event.values[0] + 90 * iOrientation); compassView.invalidate(); if (mCompassEnabled) if (mNorthDirectionUp) if (mDrivingDirectionUp == false || mLastSpeed == 0) { mapView.invalidate(); } } }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Pass true here to actually contribute to OSM! setContentView(R.layout.main); sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); sensorManager.registerListener(mListener, sensorManager .getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_UI); initCompassView(); initgeoServerMap(); } /** * */ private void initgeoServerMap() { mapView.setTileSource(TileSourceFactory.MAPNIK); mapView.setBuiltInZoomControls(true); mapController = mapView.getController(); mapController.setZoom(9); GeoPoint point2 = new GeoPoint(-99.404296875*1000000, 42.682435398386204*1000000); mapController.setCenter(point2); this.setRequestedOrientation(-1); compassView.setVisibility(View.VISIBLE); } /** * 鍒濆鍖栨寚鍗楅拡 */ private void initCompassView() { relationLayout=(RelativeLayout)findViewById(R.id.geoserver_layout); this.mapView =(MapView)findViewById(R.id.map); /* Compass */ compassView = new CompassView(this, sideBottom); compassView.setVisibility(mCompassEnabled ? View.VISIBLE : View.INVISIBLE); /* Create RelativeLayoutParams, that position in in the top right corner. */ final RelativeLayout.LayoutParams compassParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); compassParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT); compassParams.addRule(!sideBottom ? RelativeLayout.ALIGN_PARENT_BOTTOM : RelativeLayout.ALIGN_PARENT_TOP); relationLayout.addView(compassView, compassParams); } @Override protected void onDestroy() { sensorManager.unregisterListener(mListener); super.onDestroy(); } @Override protected void onPause() { super.onPause(); sensorManager.unregisterListener(mListener); } @Override protected void onResume() { super.onResume(); sensorManager.registerListener(mListener, sensorManager .getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_UI); } }
布局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:background="#FFFFFF" android:id="@+id/geoserver_layout" android:layout_height="fill_parent" > <org.osmdroid.views.MapView android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:enabled="true" tilesource="MapquestOSM" /> </RelativeLayout>
配置文件:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.geoserver.osmdroid" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name="GeoServerosmdroidActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
发表评论
-
TestNG简单的学习(十三)TestNG中Junit的实现
2013-12-04 09:00 3353TestNG和junit的整合 ... -
TestNG简单的学习(十二)TestNG运行
2013-12-03 09:08 51575文档来自官方地址: ... -
TestNG简单的学习(十一)TestNG学习总结
2013-12-03 09:08 14176最近一直在学习关于TestNG方面的知识,根 ... -
TestNG简单的学习(十)TestNG @Listeners 的使用
2013-12-03 09:07 8688TestNG官方网站: http://testng.or ... -
TestNG简单的学习(九)TestNG Method Interceptors 的使用
2013-12-03 09:07 2711TestNG官方网站: http://testng ... -
TestNG简单的学习(八)TestNG Annotation Transformers 的使用
2013-12-03 09:07 2805TestNG官方网站: http://testng.or ... -
TestNG简单的学习(七)TestNG编程方式运行
2013-12-02 09:22 2450TestNG官方网站: http://testng.or ... -
TestNG简单的学习(六)测试工厂注释的使用
2013-12-02 09:22 2779TestNG官方网站: http://testng.or ... -
TestNG简单的学习(五)参数化测试数据的定制
2013-12-02 09:22 2698TestNG官方网站: http://testng.or ... -
TestNG简单的学习(四)测试方法通过名称名称依赖实现
2013-12-02 09:21 2079TestNG官方网站: http://testng.or ... -
TestNG简单的学习(三)测试方法通过测试分组依赖实现
2013-12-02 09:21 2825TestNG官方网站: http://testng.or ... -
TestNG简单的学习(二)参数化测试并发且多方法测试方法判定
2013-11-29 15:35 3694TestNG官方网站: http://testng.or ... -
TestNG简单的学习(一)类和方法级别@Test的区别
2013-11-29 15:31 9420TestNG官方文档的地址: http://testng ... -
Feed4Junit的简单使用(七)Feed4TestNg
2013-11-29 13:35 6129在Feed4Junit主要针对junit实现的 ... -
Feed4Junit的简单使用(六)数据来特定格式文件
2013-11-29 12:29 2763Feed4Junit官方地址: http://da ... -
Feed4Junit的简单使用(五)数据来自动态约束数据
2013-11-29 12:29 2624Feed4Junit官方地址: http://datab ... -
Feed4Junit的简单使用(四)数据来自定义数据源
2013-11-28 14:09 3095Feed4Junit官方地址: http://databe ... -
Feed4Junit的简单使用(三)数据源来自数据库
2013-11-28 13:58 3164Feed4Junit官方地址: http://databe ... -
Feed4Junit的简单使用(二)数据源来自文件
2013-11-28 13:50 4565Feed4Junit官方地址: http://datab ... -
Feed4Junit的简单使用(一)
2013-11-28 13:47 2207Feed4Junit官方地址: http://databe ...
相关推荐
百度地图SDK为开发者提供了丰富的接口和工具,用于在Android应用中集成地图功能,包括添加自定义图层、处理点击事件以及地图的动态更新等。开发者可以通过查阅SDK文档、示例代码和教程,学习如何利用这些功能来构建...
它利用WebGL技术将高精度的地形数据、卫星图像以及用户自定义的数据在浏览器中呈现出来,为地理信息系统(GIS)和地图应用提供了强大的工具。 指南针插件在Cesium中的作用是提供一个指向北的指针,帮助用户在3D环境...
在IT行业中,自定义地图底图(瓦片)是一个常见的需求,特别是在地理信息系统(GIS)和Web地图服务中。这个Demo展示了如何在地图上显示自定义的图片,并且支持多层级放大缩小,提供了丰富的交互体验。下面将详细介绍...
在"GIS.rar_gis_gis管网_百度地图_管网图形_管网地图"这个压缩包中,我们可以推测它包含了与GIS应用相关的文件,特别是关于管网地图的创建和编辑。 首先,"GIS.html"可能是该压缩包的核心文件,它可能是一个基于Web...
自定义地图图源是奥维地图的一项重要特性,它让用户可以导入自己的地图数据,或者使用第三方提供的地图数据,从而在奥维地图上展现更加符合个人需求的地图信息。 在“奥维地图-自定义地图_5.25更新.zip”这个压缩包...
在IT行业中,地图服务是应用广泛的工具之一,特别是在地理信息系统(GIS)和移动应用中。本文将深入探讨如何使用百度地图API实现自定义标注,帮助开发者们更好地展示地图上的特定位置信息。 首先,"百度地图自定义...
本文将深入探讨如何在ArcGIS中加载高德在线地图,这是一项结合了Web GIS技术和第三方地图服务的重要技能。 标题“arcgis加载高德在线地图”指的是在ArcGIS环境中,利用编程接口(API)集成高德地图的服务,使得用户...
此实例为vue版本三维GIS地图,其中包含底图切换、图层控制、图上量算、空间分析、坐标定位、图上标绘、地图打印等功能
本话题主要聚焦于如何利用ArcGIS for JavaScript加载天地图以及添加自定义图层。 首先,让我们深入了解ArcGIS for JavaScript的核心概念。它基于ESRI的地理信息系统技术,提供了丰富的API接口,可以实现地图的创建...
2. 数据结构与数据模型:在GIS中,地理数据通常被表示为点、线、面三种基本要素。矢量数据模型用坐标来表示这些要素,适合于描述边界明确的地理对象;而栅格数据模型用网格表示地表,适合处理连续分布的地理现象。 ...
在IT行业中,GIS(Geographic Information System)技术与地图服务的结合为我们提供了强大的地理数据处理和展示能力。本文将深入探讨“Baidu地图自定义模糊查询”这一主题,旨在帮助开发者更好地利用百度地图API实现...
在IT行业中,地图应用是不可或缺的一部分,特别是在大数据和地理信息系统(GIS)的背景下,点聚合技术显得尤为重要。本文将深入探讨“百度地图点聚合自定义样式”这一主题,旨在帮助开发者更好地理解和实现在百度...
5. **GIS编程与自动化**:学习Python、R语言或ArcPy等工具进行GIS脚本编写,实现批量处理、自定义功能开发,提高工作效率。 6. **数据库管理**:理解GIS与数据库的关系,如使用SQL进行空间查询、更新和管理空间数据...
在本资源中,我们关注的是GIS地图的一个具体应用——百度地图的离线版本,特别针对江苏省的地理信息。 百度地图是中国领先的在线地图服务提供商之一,提供了丰富的地图数据和导航功能。然而,在没有网络连接的情况...
在Web GIS中,JavaScript库如Leaflet、OpenLayers、ArcGIS API for JavaScript等,为开发者提供了丰富的功能,包括加载地图瓦片、添加图层、标注、查询、分析等。例如,你可以使用这些库来创建一个基本的地图界面,...
压缩包子文件的文件名称列表中有一个“四川地图shp文件 shp格式,gis添加使用.pdf”,这可能是对如何使用这些SHP文件的指南或教程,可能包含数据的详细说明、加载步骤、GIS软件操作指导等内容。对于GIS新手来说,...
奥维互动地图自定义地图,通过pc版导入后分享到手机更方便
在本案例中,我们关注的是ECharts的自定义地图功能,特别是针对“乡镇级别”的行政划分地图。ECharts自定义地图允许用户根据特定的需求,将地图数据进行定制,以展示更细致的地理信息。 山西长治潞城区乡镇级地图是...
在IT行业中,地图服务是应用广泛的一个领域,特别是在地理信息系统(GIS)和移动应用中。本文将深入探讨“Map覆盖物添加demo”这一主题,它涉及到如何在地图上添加自定义元素,以增强地图的可视化效果和交互性。我们...
最后,**百度地图自定义图层示例代码** 是一组示例代码,用于演示如何在百度地图API上添加自定义图层。自定义图层是百度地图API的一项高级功能,允许开发人员在地图上叠加自己的数据或图形。这可能是地理编码后的点...