精华内容
下载资源
问答
  • 地图三个基本特征

    千次阅读 2020-05-19 22:44:55
    基本特征是可量测性,包含三个方面: 地图投影、地图比例尺和地图定向; 使用超图桌面版打开一幅地图;这是自带的京津地区地图; 比例尺在左下角,可切换; 看一下地图属性;有比例尺; 有坐标系统...

    GIS中地图就是按照一定的数字法则、运算符号系统,概括地将地图或其他星球的空间现象,以二维或多维、静态或动态可视化形式,综合概括、模型模拟等手段缩小表示在一定载体上,科学的反映出自然和社会经济现象的分布特征及其相互关系。

    地图有多个特征;最基本的特征是可量测性,包含三个方面:

        地图投影、地图比例尺和地图定向;

     

    使用超图桌面版打开一幅地图;这是自带的京津地区地图;

    比例尺在左下角,可切换;

     看一下地图属性;有比例尺;

    有坐标系统;这个就是投影;投影设置可切换;

    地图定向是通过什么来体现,一时还没想到;也许是通过经纬度;或者通过右上角的导航条,如图1;

    展开全文
  • 最近在项目中用到了地图显示与定位功能,那么毫无疑问首选百度地图,关于百度地图基本使用在其官网介绍的十分详细,而且还附带程序Demo代码供大家参考。链接:点击打开链接。注意在自己的项目中使用百度地图需要先...

    最近在项目中用到了地图显示与定位功能,那么毫无疑问首选百度地图,关于百度地图的基本使用在其官网介绍的十分详细,而且还附带程序Demo代码供大家参考。链接:点击打开链接。注意在自己的项目中使用百度地图需要先注册一个百度开发者账号,然后通过一些配置操作获取一个keyStore。这个不难,但是过程很琐碎,大家可以参照百度地图API官网的步骤一步一步来,这里就不详细叙述,下面给出自己项目中使用百度地图定位功能的核心代码。


    public class MainActivity extends Activity {
    
    	private MapView mMapView;
    	private BaiduMap bdMap;
    	public LocationClient mLocationClient = null;
    	boolean firstLoc=true; //是否首次定位
    	
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
          //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
            //注意该方法要再setContentView方法之前实现  
            SDKInitializer.initialize(getApplicationContext());  
            setContentView(R.layout.activity_main); 
            initView();
            initData();
    
        }
    
    
        void initView()
        {
        	  mMapView = (MapView) findViewById(R.id.bmapView);
        	  bdMap = mMapView.getMap();
        }
        void initData()
        {
    
        //	MapStatusUpdate update=MapStatusUpdateFactory.zoomTo(21);
        //	bdMap.setMapStatus(update);
        	
        	bdMap.setMyLocationEnabled(true);//开启定位图层
        	mLocationClient = new LocationClient(getApplicationContext());     //声明LocationClient类
            mLocationClient.registerLocationListener(mLocationClientListener);    
            mLocationClient.start();
    
           
        }
        private BDLocationListener mLocationClientListener =new BDLocationListener() {
    
    
    		@Override
    		public void onReceiveLocation(BDLocation arg0) {
    			// TODO Auto-generated method stub
    			if(arg0==null)
    				return;
    			
    			float  accuracy= arg0.getRadius();
    			double  lat=  arg0.getLatitude();
    			double  lon= arg0.getLongitude();
        		
        		 MyLocationData.Builder build=new  MyLocationData.Builder();
        			build.accuracy(accuracy);
        			build.latitude(lat);
        			build.longitude(lon);
        			MyLocationData myLocationData=build.build();
        			bdMap.setMyLocationData(myLocationData);//设置定位数据
        		
    			if (firstLoc) {
    				firstLoc = false;
    
    				MapStatus.Builder mapStatusBuilder = new MapStatus.Builder();
    				LatLng ll = new LatLng(lat, lon);
    				mapStatusBuilder.target(ll);
    				//mapStatusBuilder.zoom(18.0f);
    
    				MapStatus mapStatus = mapStatusBuilder.build();
    				MapStatusUpdate mapUpdate = MapStatusUpdateFactory
    						.newMapStatus(mapStatus);
    				bdMap.animateMapStatus(mapUpdate);
    
    			}
    		}
        };
        
        
        
        protected void onDestroy() {  
            super.onDestroy();  
            //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
            locationClient.stop();
            bdMap.setMyLocationEnabled(false);
            mMapView.onDestroy();  
        }  
        @Override  
        protected void onResume() {  
            super.onResume();  
            //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
            mMapView.onResume();  
            }  
        @Override  
        protected void onPause() {  
            super.onPause();  
            //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
            mMapView.onPause();  
            }  
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
        
    }
    
    代码注释已经十分详细了,相信大家也看的懂,关于每个API的详细功能请参考百度地图API官网相关信息。

    看一下运行结果,不知道为何在模拟器上运行定位结果不太准确,但是可以看到定位功能已经显示出来了(第一张图),在自己手机上定位还是非常准的(第二张图)截图如下:



    希望本博客可以帮到需要在自己的项目中使用百度地图定位功能的小伙伴们,当然本博客只给出了最核心的代码,之所以给出最核心的代码是因为最核心的东西往往能最简洁的说明使用百度地图的逻辑过程,其余的一下显示方面的细节代码大家可以参考官方Demo的代码。


    如果读者觉得本博客写的不错,记得小手一抖,点个赞哦!另外欢迎大家关注我的博客账号哦,将会不定期的为大家分享技术干货,福利多多哦!

    展开全文
  • 面向对象的4个基本特征

    千次阅读 2010-11-03 10:17:00
    面向对象的4个基本特征 在上述面向对象的基本概念基础之上,不可避免地要涉及到面向对象程序设计所具有的4个共同特征:抽象性、封装性、继承性和多态性。 1.抽象 抽象是人们认识事物的常用方法,比如地图的绘制。...

    上个周末霸笔大唐移动的应用程序软件工程师试题,有一道面向对象的4个特征,以前都是接触的三个,怎么多出了一个?原来就是抽象性。。。

    面向对象的4个基本特征
    在上述面向对象的基本概念基础之上,不可避免地要涉及到面向对象程序设计所具有的4个共同特征:抽象性、封装性、继承性和多态性。
    1.抽象
    抽象是人们认识事物的常用方法,比如地图的绘制。抽象的过程就是如何简化、概括所观察到的现实世界,并为人们所用的过程。
    抽象是软件开发的基础。软件开发离不开现实环境,但需要对信息细节进行提炼、抽象,找到事物的本质和重要属性。
    抽象包括两个方面:过程抽象和数据抽象。过程抽象把一个系统按功能划分成若干个子系统,进行"自顶向下逐步求精"的程序设计。数据抽象以数据为中心,把数据类型和施加在该类型对象上的操作作为一个整体(对象)来进行描述,形成抽象数据类型ADT。
    所有编程语言的最终目的都是提供一种"抽象"方法。一种较有争议的说法是:解决问题的复杂程度直接取决于抽象的种类及质量。其中,"种类"是指准备对什么进行"抽象"。汇编语言是对基础机器的少量抽象。后来的许多"命令式"语言(如FORTRAN、BASIC和C)是对汇编语言的一种抽象。与汇编语言相比,这些语言已有了较大的进步,但它们的抽象原理依然要求程序设计者着重考虑计算机的结构,而非考虑问题本身的结构。在机器模型(位于"方案空间")与实际解决的问题模型(位于"问题空间")之间,程序员必须建立起一种联系。这个过程要求人们付出较大的精力,而且由于它脱离了编程语言本身的范围,造成程序代码很难编写,而且要花较大的代价进行维护。由此造成的副作用便是一门完善的"编程方法"学科。
    为机器建模的另一个方法是为要解决的问题制作模型。对一些早期语言来说,如LISP和APL,它们的做法是"从不同的角度观察世界"、"所有问题都归纳为列表"或"所有问题都归纳为算法"。PROLOG则将所有问题都归纳为决策链。对于这些语言,可以认为它们一部分是面向基于"强制"的编程,另一部分则是专为处理图形符号设计的。每种方法都有自己特殊的用途,适合解决某一类的问题。但只要超出了它们力所能及的范围,就会显得非常笨拙。
    面向对象的程序设计在此基础上则跨出了一大步,程序员可利用一些工具来表达问题空间内的元素。由于这种表达非常普遍,所以不必受限于特定类型的问题。人们将问题空间中的元素以及它们在方案空间的表示物称作"对象"。当然,还有一些在问题空间没有对应体的其他对象。通过添加新的对象类型,程序可进行灵活的调整,以便与特定的问题配合。所以在阅读方案的描述代码时,会读到对问题进行表达的话语。与以前的方法相比,这无疑是一种更加灵活、更加强大的语言抽象方法。
    总之,OOP允许人们根据问题,而不是根据方案来描述问题。然而,仍有一个联系途径回到计算机。每个对象都类似一台小计算机;它们有自己的状态,而且可要求它们进行特定的操作。与现实世界的"对象"或者"物体"相比,编程"对象"与它们也存在共通的地方:它们都有自己的特征和行为。
    2.封装
    封装是面向对象编程的特征之一,也是类和对象的主要特征。封装将数据以及加在这些数据上的操作组织在一起,成为有独立意义的构件。外部无法直接访问这些封装了的数据,从而保证了这些数据的正确性。如果这些数据发生了差错,也很容易定位错误是由哪个操作引起的。
    如果外部需要访问类里面的数据,就必须通过接口(Interface)进行访问。接口规定了可对一个特定的对象发出哪些请求。当然,必须在某个地方存在着一些代码,以便满足这些请求。这些代码与那些隐藏起来的数据叫作"隐藏的实现"。站在过程化程序编写(Procedural Programming)的角度,整个问题并不显得复杂。一种类型含有与每种可能的请求关联起来的函数。一旦向对象发出一个特定的请求,就会调用那个函数。通常将这个过程总结为向对象"发送一条消息"(提出一个请求)。对象的职责就是决定如何对这条消息作出反应(执行相应的代码)。
    若任何人都能使用一个类的所有成员,那么可对这个类做任何事情,则没有办法强制他们遵守任何约束--所有东西都会暴露无遗。
    有两方面的原因促使了类的编制者控制对成员的访问。第一个原因是防止程序员接触他们不该接触的东西--通常是内部数据类型的设计思想。若只是为了解决特定的问题,用户只需操作接口即可,无需明白这些信息。类向用户提供的实际是一种服务,因为他们很容易就可看出哪些对自己非常重要,以及哪些可忽略不计。进行访问控制的第二个原因是允许库设计人员修改内部结构,不用担心它会对客户程序员造成什么影响。例如,编制者最开始可能设计了一个形式简单的类,以便简化开发。以后又决定进行改写,使其更快地运行。若接口与实现方法早已隔离开,并分别受到保护,就可放心做到这一点,只要求用户重新链接一下即可。
    封装考虑的是内部实现,抽象考虑的是外部行为。符合模块化的原则,使得软件的可维护性、扩充性大为改观。
    3.继承
    继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类的继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且派生类可以修改或增加新的方法使之更适合特殊的需求。这也体现了大自然中一般与特殊的关系。继承性很好地解决了软件的可重用性问题。比如说,所有的Windows应用程序都有一个窗口,它们可以看作都是从一个窗口类派生出来的。但是有的应用程序用于文字处理,有的应用程序用于绘图,这是由于派生出了不同的子类,各个子类添加了不同的特性。
    关于继承的详细讨论,将在第4.1~4.2节进行。
    4.多态性
    多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在一起肯定完全不同。又比如,同样的选择"编辑"、"粘贴"操作,在字处理程序和绘图程序中有不同的效果。多态性包括参数化多态性和运行时多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好地解决了应用程序函数同名问题。
    关于多态性的讨论,将在4.7~4.9节进行。
    最后,以Alan Kay的话作为本节的结束语。他总结了Smalltalk(这是第一种成功的面向对象程序设计语言,也是Java的基础语言)的五大基本特征。通过这些特征,读者可以理解"纯粹"的面向对象程序设计方法。
    (1)所有东西都是对象。可将对象想象成一种新型变量,它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题上,提出所有概念性的组件,然后在程序中将其表达为一个对象。
    (2)程序是一大堆对象的组合。通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那个对象"发送一条消息"。更具体地讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个子例程或函数。
    (3)每个对象都有自己的存储空间,可容纳其他对象。或者说,通过封装现有对象,可制作出新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。
    (4)每个对象都有一种类型。根据语法,每个对象都是某个"类(Class)"的一个"实例"。其中,"类"是"类型(Type)"的同义词。一个类最重要的特征就是"能将什么消息发给它?"。
    (5)同一类所有对象都能接收相同的消息。这实际是别有含义的一种说法,读者不久便能理解。由于类型为"圆(Circle)"的一个对象也属于类型为"形状(Shape)"的一个对象,所以一个"圆"完全能接收"形状"的消息。这意味着可让程序代码统一指挥"形状",令其自动控制所有符合"形状"描述的对象,其中自然包括"圆"。这一特性称为对象的"可替换性",是OOP最重要的概念之一。

    展开全文
  • 百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口, 可以通过该接口实现丰富的LBS功能。练习使用了一下百度地图sdk,感觉还不错。 第一步:将百度地图的jar包和.so文件拷入到libs文件夹中。 ...

    百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口, 可以通过该接口实现丰富的LBS功能。练习使用了一下百度地图sdk,感觉还不错。


    第一步:将百度地图的jar包和.so文件拷入到libs文件夹中。

    第二步:在AndroidManifest中添加开发密钥、所需权限等信息;

    (1)在application中添加开发密钥

    <application>  
        <meta-data  
            android:name="com.baidu.lbsapi.API_KEY"  
            android:value="开发者 key" />  
    </application>

    2)添加所需权限

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

    第三步:在布局xml文件中添加地图控件;

    <com.baidu.mapapi.map.MapView  
        android:id="@+id/bmapView"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:clickable="true" />

    第四步:初始化地图。。。

    基本地图

    在使用地图控件之前必须调用SDKInitializer.initialize(Context)函数用以提供全局Context信息。

    所以可以将SDKInitializer.initialize(Context)放在application文件中,确保初始化完成。

    下面是SDKInitializer类的方法。


    接着我们看一下VersionInfo类:


    例如 可以通过直接调用VersionInfo.getApiVersion()获取当前的版本号 3.6.1。还有包名和当前版本信息都可以获取。

    接着我们看一下地图的基础——MapView的方法:


    MapView上面的方法中和activity的生命周期类似,我们应该将onPause onResume onDestroy方法放在对应的activity生命周期中。

    默认的情况下,地图会带有缩放控件和比例尺      。可以通过mMapView.showZoomControls(show)和

    mMapView.showScaleControl(boolean show)设置显示与否。

    <span style="font-family:KaiTi_GB2312;font-size:18px;">mapView.showZoomControls(false);// 不显示默认的缩放控件
    mapView.showScaleControl(false);// 不显示默认比例尺控件</span>

    一般情况下初始化显示的地图中心都是在天安门附近,如果想更改到其他地点呢?


    那就要用到MapStatus   MapStatus.Builder   类了,先看一下MapStatus.Builder 类的方法:


    可以通过这种方法初始化地图:

    LatLng p = new LatLng(39.963175, 116.400244);  //设置中心点的坐标
    mMapView = new MapView(this,
    			new BaiduMapOptions().mapStatus(new MapStatus.Builder()
    			.overlook(-30).rotate(0).zoom(10).target(p).build()));//设置俯视角 旋转角度 缩放级别 中心点。
    setContentView(mMapView);
    那么如何操作地图呢?        

    类 MapStatusUpdateFactory


    缩放   级别3~20

    MapStatusUpdate u = MapStatusUpdateFactory.zoomTo(5);
    mBaiduMap.animateMapStatus(u);
    旋转   -180~180

    MapStatus ms = new MapStatus.Builder(mBaiduMap.getMapStatus()).rotate(rotateAngle).build();
    MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms);
    mBaiduMap.animateMapStatus(u);
    俯视   -45~0

    MapStatus ms = new MapStatus.Builder(mBaiduMap.getMapStatus()).overlook(-30).build();
    MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms);
    mBaiduMap.animateMapStatus(u);
     MapStaus.Builder中有一个设置地图中心点的方法: 

    ,在MapStatusUpdateFactory中也有一个设置中心点的方法:。两个个都是设置中心点

    可以使用MapStatusUpdateFactory的这个方法只改变中心点:

    MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(LatLng latLng);
    mBaiduMap.animateMapStatus(u);
    而Builder中可以设置多个属性改变地图的俯视角、中心点、缩放级别等。

    MapStatus ms = new MapStatus.Builder(mBaiduMap.getMapStatus()).overlook(-30).rotate(90).target(lat).build();
    MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms);
    mBaiduMap.animateMapStatus(u);

    在BaiduMap中有一个截屏的回调接口和一个截图的请求方法:



    很明显,调用这个截图请求方法,参数是上面的回调接口。在回调接口中只有一个方法:onSnapshotReady(Bitmap snapshot)。我们得到这个bitmap之后,就可以生成图片保存起来了。

        有Bitmap转成图片就需要用到Bitmap.compress()方法:


    mBaiduMap.snapshot(new SnapshotReadyCallback() {
          public void onSnapshotReady(Bitmap snapshot) {
    		File file = new File("/mnt/sdcard/test.png");
    			FileOutputStream out;
    			try {
    				out = new FileOutputStream(file);
    				if (snapshot.compress(
    						Bitmap.CompressFormat.PNG, 100, out)) {
    					out.flush();
    					out.close();
    				}
    				Toast.makeText(MapControl.this,
    							"屏幕截图成功,图片存在: " + file.toString(),
    										Toast.LENGTH_SHORT).show();
    			} catch (FileNotFoundException e) {
    				e.printStackTrace();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    });



    package cn.vn.bdmapdemo;
    
    import com.baidu.mapapi.SDKInitializer;
    import com.baidu.mapapi.map.BaiduMap;
    import com.baidu.mapapi.map.BaiduMap.OnMarkerDragListener;
    import com.baidu.mapapi.map.BitmapDescriptor;
    import com.baidu.mapapi.map.BitmapDescriptorFactory;
    import com.baidu.mapapi.map.MapView;
    import com.baidu.mapapi.map.Marker;
    import com.baidu.mapapi.map.MarkerOptions;
    import com.baidu.mapapi.map.OverlayOptions;
    import com.baidu.mapapi.model.LatLng;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    
    public class BaseMap extends Activity {
    	MapView mMapView = null;
    	private BaiduMap mBaiduMap;
    	private Marker marker;
    	
    	// 初始化全局 bitmap 信息,不用时及时 recycle
    	BitmapDescriptor bdA = BitmapDescriptorFactory
    			.fromResource(R.drawable.icon_marka);
    	BitmapDescriptor bdB = BitmapDescriptorFactory
    			.fromResource(R.drawable.icon_markb);
    	BitmapDescriptor bdC = BitmapDescriptorFactory
    			.fromResource(R.drawable.icon_markc);
    	BitmapDescriptor bdD = BitmapDescriptorFactory
    			.fromResource(R.drawable.icon_markd);
    	BitmapDescriptor bd = BitmapDescriptorFactory
    			.fromResource(R.drawable.icon_gcoding);
    	BitmapDescriptor bdGround = BitmapDescriptorFactory
    			.fromResource(R.drawable.ground_overlay);
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);   
            //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
            //注意该方法要再setContentView方法之前实现  
            SDKInitializer.initialize(getApplicationContext());  
            setContentView(R.layout.base_map);  
            //获取地图控件引用  
            mMapView = (MapView) findViewById(R.id.bmapView);
            mBaiduMap = mMapView.getMap();  
            mBaiduMap.setOnMarkerDragListener(new OnMarkerDragListener() {
        	    public void onMarkerDrag(Marker marker) {
        	        //拖拽中
        	    }
        	    public void onMarkerDragEnd(Marker marker) {
        	        //拖拽结束
        	    }
        	    public void onMarkerDragStart(Marker marker) {
        	        //开始拖拽
        	    }
        	});
        }   
        
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		 menu.add(1, 1, 1, "普通地图");  
    		 menu.add(1, 2, 2, "卫星地图");  
    		 menu.add(1, 3, 3, "开启交通图");
    		 menu.add(1, 4, 4, "开启城市热力图");
    		 menu.add(1, 5, 5, "标注");
    		 return true;
    	}
    	@Override
    	public boolean onOptionsItemSelected(MenuItem item) {
    		switch(item.getItemId()){
    		case 1:
    			//普通地图  
    		    mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
    			break;
    		case 2:
    			//普通地图  
    		      mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
    		      break;
    		case 3:
    			if(item.getTitle().toString().equals("开启交通图")){
    				//开启交通图   
    				mBaiduMap.setTrafficEnabled(true);
    				item.setTitle("关闭交通图");
    			}else{
    				mBaiduMap.setTrafficEnabled(false);
    				item.setTitle("开启交通图");
    			}
    			break;
    		case 4:
    			if(item.getTitle().toString().equals("开启城市热力图")){
    				mBaiduMap.setBaiduHeatMapEnabled(true);
    				item.setTitle("关闭城市热力图");
    			}else{
    				mBaiduMap.setBaiduHeatMapEnabled(false);
    				item.setTitle("开启城市热力图");
    			}
    			break;
    		case 5:
    			if(item.getTitle().toString().equals("标注")){
    				LatLng point = new LatLng(39.963175, 116.400244);  
    				//构建Marker图标  
    				BitmapDescriptor bitmap = BitmapDescriptorFactory  
    				    .fromResource(R.drawable.icon_marka);  
    				//构建MarkerOption,用于在地图上添加Marker  
    				OverlayOptions option = new MarkerOptions()  
    				    .position(point)  
    				    .icon(bitmap)
    				    .draggable(true);  
    				//在地图上添加Marker,并显示  
    				marker = (Marker) (mBaiduMap.addOverlay(option));
    				item.setTitle("清除");
    			}else{
    				marker.remove();//清除具体某个标注。
    				item.setTitle("标注");
    			}
    		}
    		return super.onOptionsItemSelected(item);
    	}
    	
    	/**
    	 * 清除所有Overlay
    	 * 
    	 * @param view
    	 */
    	public void clearOverlay(View view) {
    		mBaiduMap.clear();
    	}
    	
    	@Override  
        protected void onResume() {  
            super.onResume();  
            //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
            mMapView.onResume();  
            }  
        @Override  
        protected void onPause() {  
            super.onPause();  
            //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
            mMapView.onPause();  
            }  
        @Override  
        protected void onDestroy() {  
            super.onDestroy();  
            //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
            mMapView.onDestroy();  
        }
    }
    

    展开全文
  • 、加载天地图   四、总结     一、引言   换工作中间耽误了好长时间没有更过blog了,现在终于有时间搞开源webgis了,先从openlayer下手,后面打算在研究geoserver、postgis、geotool等技术和OGC中WMS、...
  • 今天,想给大家带来一基于百度地图官方开放的API开发的高仿百度地图的Demo(还称不上是一APP),基本实现了百度地图的几大核心功能,百度地图中的基本地图,百度地图的定位,百度地图的全景显示,百度地图的导航等...
  • 今年7月份,ArcGIS Runtime100总算推出第一它的第一资料片,哦不,更新版,ArcGIS Runtime100.1,也被...而新增功能里最让我们关注的就是Android SDK里也支持3D地图了。具体内容可以参见官网:https://developers.a
  • 百度地图开发()之地图控制 + 定位

    万次阅读 多人点赞 2015-02-21 14:47:45
     前两篇关于百度地图的blog写的是,一些基本图层的展示 和 覆盖物的添加+地理编码和反地理编码。  接下来,这篇blog主要说一些关于地图控制方面的内容和定位功能。  百度地图提供的关于地图的操作主要有:单击...
  • iOS百度地图SDK基本配置和使用

    千次阅读 2015-08-13 19:20:26
    介绍:在iOS的开发中,有些应用需要实现与地图相关功能,这时候可以选择使用苹果自带的框架进行实现,也可以选择使用百度所提供的这方SDK进行功能的实现,下面将对百度地图的SDK的基本使用进行说明: ...
  • 今天,想给大家带来一基于百度地图官方开放的API开发的高仿百度地图的Demo(还称不上是一APP),基本实现了百度地图的几大核心功能,百度地图中的基本地图,百度地图的定位,百度地图的全景显示,百度地图的导航等...
  • 加载3Dtile模型数据   3D展示效果 geojson格式数据展示 白驹过隙,时光如梭,又到一年年尾。回想一年的工作,感觉做了很多,又感觉什么都没做...我是随性的人,想到哪里讲到哪里,但是逻辑还是很清晰的,细...
  • 百度地图api基本用法

    千次阅读 2019-03-14 11:41:46
    首先 ,如果想调用百度地图api,你需要获取一百度地图api的密钥。 申请密钥很简单,在百度地图api的首页就有相关链接,填写相关信息百度就会给你一密钥了。 接下来,就是引入百度地图的api 关键代码如下: ...
  • 嵌入维地球Cesium到我们的应用中,往往需要对最原始的Cesium初始化参数进行调整。下面是Cesium不经过任何参数...这里还在维球上加载天地图、以及其他地图。 具体实现代码如下。 &lt;!DOCTYPE html&...
  • 地图显示分为MapView和 AMap 两类 MapView重写activity内的基本所有生命周期方法 Amap由mapview产生:aMap = mapView.getMap(); 其实amap才是真正操纵地图显示的类 amap的设置方法: /** * 设置一些amap的属性...
  • 今天,我们接着上一讲,上一讲我们把地图上界面自定义了一番,加上了按钮等一系列的控件,但是还没有给这些加上具体的功能,今天这一讲,主要是实现几种地图的切换,是否开启实时交通,通过自定义的按钮去控制地图的...
  • 地图map控件基本参数设置

    千次阅读 2012-08-01 16:36:49
    地图map控件基本参数设置,总结了一些比较有用的参数,包括esriConfig.defaults.map下的参数设置和map控件的参数设置。 一、esri.Map属性参数设置 var startExtent = new esri.geometry.Extent(-117....
  • 写在前面的话:  【百度地图开发之五】百度地图地位图层基本使用方法讲解(博客地址:http://blog.csdn.net/developer_jiangqq... 上一篇我们学习了【百度地图开发之四】百度地图基本操作功能实现讲解(),今天继续看一下
  • HTML5 / JS实现百度地图基本常用功能

    千次阅读 2016-11-21 20:09:41
    很多网站都会使用到地图功能,提供地图接口的第方也有不少,我这里来聊一下百度地图提供的API及百度地图基本功能的实现
  •  【百度地图开发之四】百度地图基本操作功能实现讲解(博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明。  Author:hmjiangqq  Email:jiangqqlmj@163.com    上一篇我们学习了【百度地图开发之...
  • 最近在调研arcgis地图,就把一些自己写的基本的操作po一下,希望对刚刚开始接触到arcgis的童鞋有点帮助,大神请指正吐槽。
  • 第四节 实现地图基本操作

    千次阅读 2016-10-12 09:21:01
    一、 创建我们的第一程序 首先我们先找到我们的Vs2013,启动它。 启动完成后的显示的画面如下: 下面我们新建一Silverlight项目,命名为HelloWord。创建方法如下:文件-新建-项目。在弹出的“新建项目”...
  •  OGC——Open Geospatial Consortium——开放地理信息联盟,是一非盈利的志愿的国际标准化组织,引领着空间地理信息标准及定位基本服务的发展目前在空间数据互操作领域,基于公共接口访问模式的互操作方法
  • 上篇介绍了基本的mapbox安装和配置问题,本篇开始介绍mapbox的工作逻辑。 因地图和数据相关的东西,国内一向敏感,因此特事先声明: 本博客系列仅借用开源地图mapbox,试图从代码和设计角度说明一款开源地图是如何...
  • Android开发笔记(一百零地图与定位SDK

    万次阅读 热门讨论 2016-06-01 14:32:44
    集成地图SDK ...1、点击基本地图功能选项,不能打开地图,弹出“key验证出错!请在AndroidManifest.xml文件中检查key设置的”的红色字提示。查看日志提示“galaxy lib host missing meta-data,make sure y
  • 作为国内最大的两个地图厂商,高德地图和百度地图究竟哪个更好用?今儿小编两款地图产品做一下基础评测。 评测一:手机机型适配度 iPhone6/6Plus由于屏幕尺寸和此前型号不同,导致不少App的像素未能适配...
  • 今天我们来谈下百度地图的定位功能,在此之前我已经将百度地图基本地图大概说了下,其实百度地图基本功能还有很多的内容。感兴趣的可以到百度地图的开发者的官网看看。今天就开始来讲下百度地图中的定位功能。 ...
  • 最近由于开发需要,接触了下argis,虽然很牛逼,但是很多东西都不太清楚,这里就简单的写下arcgis的一些基本操作,备用。 ArcGlobe与ArcScene功能比较与简单说明  ArcGIS Desktop中,可用于维场景展示的...
  • Echarts中国地图三级钻取

    千次阅读 2018-11-27 18:36:26
    前言 最近其实一直在用Echarts写...写这篇博客是因为Echarts官网把很多地图的例子都去掉了,且不能下载地图Json的数据,而相关的博客又很少,搜到两,但是不很符合自己的想法,所以就想自己实现总结一下最基本的...
  • Cesium开源维地球离线地图发布源码提供了地图切换、查询定位、模型加载、专题图叠加显示和测量功能等,旨在为用户提供一可以在Cesium快速加载离线地图或在线地图的解决方案,并提供技术支持。 除了现有基本功能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,784
精华内容 35,913
热门标签
关键字:

地图的三个基本特征