首页 文章 精选 留言 我的

精选列表

搜索[CodeBuddy开发者分享季],共10002篇文章
优秀的个人博客,低调大师

Android GIS开发系列-- 入门季(2) MapView与图层介绍

一、MapView MapView是Arcgis中的最基本的类,与高德地图SDK的MapView的重要性一样。MapView的创建有两种方法,一种是在Layout文件中直接写控件。一种是实例化,MapView mapView = new MapView(Context context); <com.esri.android.map.MapView android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 1.addLayer(Layerlayer),添加图层。可以添加网络图层与本地图层,tpk文件,shp文件,json数据等。 图层的添加是有顺序的,一层一层叠加,后面的图层会覆盖前面的图层。removeLayer(int index),移除图层。getLayer获取图层,通过顺序id,url地址等获取。 2.setExtent,设置MapView的所显示的范围。 3.zoomin地图缩小,zoomout地图放大。 4.setOnSingleTapListener(OnSingleTapListeneronSingleTapListener),MapView的单击事件,返回的是float screenx, float screeny,屏幕的x与y值,通过toMapPoint(float screenx, float screeny),将屏幕坐标转化为地图坐标。 5.toScreenPoint(Pointsrc),将地图坐标转化屏幕坐标。 6.setOnLongPressListener(OnLongPressListeneronLongPressListener),地图的长按事件,也是返回屏幕的x与y值。 7.getSpatialReference(),获取地图的坐标系,比如84坐标或者是墨卡托等。 8.getLocationDisplayManager(),返回LocationDisplayManager,用于地图定位的显示。 9.getCallout(),返回Callout对象,用于显示气泡弹出 二、图层 Arcgis中的图层有许多,下面是图层的关系表。主要的图层有DynamicLayer,FeatureLayer,GraphicsLayer,GroupLayer,KmlLayer,RasterLayer,TiledLayer。 ,下面的主要来介绍一下Arcgis的主要图层。 1.GraphicLayer,图形图层,只有一个子类ArcGISFeatureLayer。用户通过这个图层可以在MapView中自形绘制要素,通过样式与色彩绘制点、线、面。 2.TiledLayer,切片图层,子类有ArcGISLocalTiledLayer,TiledServiceLayer。ArcGISLocalTiledLayer可以加载本地的tpk文件与切片图层,通过其子类ArcGISTiledMapServiceLayer加载网络的切片图层。 下面的主要来介绍一下Arcgis的主要图层。 1.GraphicLayer,图形图层,只有一个子类ArcGISFeatureLayer。用户通过这个图层可以在MapView中自形绘制要素,通过样式与色彩绘制点、线、面。 2.TiledLayer,切片图层,子类有ArcGISLocalTiledLayer,TiledServiceLayer。ArcGISLocalTiledLayer可以加载本地的tpk文件与切片图层,通过其子类ArcGISTiledMapServiceLayer加载网络的切片图层。 ArcGISLocalTiledLayerlocal=newArcGISLocalTiledLayer("/sdcard/<CacheName>/Layers"); ArcGISLocalTiledLayerlocal=newArcGISLocalTiledLayer("/sdcard/<CacheName>.tpk"); 3.FeatureLayer,要素图层,没有子类,可加载本地shp文件。通过要素的特性,快速查询具体的要素信息。加载快速。 4.DynamicLayer,动态图层。主要有子类ArcGISDynamicMapServiceLayer,ArcGISImageServiceLayer, WMSLayer。前面两个用来加载网络动态图层与网络图像图层。 没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。 本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/7751847.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android GIS开发系列-- 入门季(15) 网络图层加载

一、首先我们来看一个网络图层: http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer,这是全球街道图。加载的代码也很简单: private static final String WORLD_STREETS_URL = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"; private MapView mMapView = null; private ArcGISTiledMapServiceLayer mWorldStreetsLayer = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.map_view); mWorldStreetsLayer = new ArcGISTiledMapServiceLayer(WORLD_STREETS_URL); mMapView.addLayer(mWorldStreetsLayer); mWorldStreetsLayer.setOnStatusChangedListener(new OnStatusChangedListener() { @Override public void onStatusChanged(Object o, STATUS status) { if (status==STATUS.INITIALIZED){ Log.i("huang","加载成功"); }else if(status==STATUS.INITIALIZATION_FAILED||status==STATUS.LAYER_LOADING_FAILED){ Log.i("huang","加载失败"); } } }); } 效果图 问:为什么用ArcGISTiledMapServiceLayer 加载而不用其他图层加载呢? 用浏览器打开http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer,可以看到详细信息。 它的子图层只有一个: 下面是坐标信息,注意Single Fused Map Cache: true,支持缓存。 与Tile Info信息, 通过信息说明这是一个TiledLayer,而ArcGISTiledMapServiceLayer是TiledLayer子类的子类,看一下ArcGISTiledMapServiceLayer的介绍。 点开World Street Map链接,http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer/0,这是它的唯一子图层。真正加载的也是这个图层 Type虽然说是FeatureLayer,但它得用ArcGISFeatureLayer加载。 ArcGISFeatureLayer arcGISFeatureLayer = new ArcGISFeatureLayer(WORLD_STREETS_URL+"/0", ArcGISFeatureLayer.MODE.ONDEMAND); SimpleFillSymbol simpleFillSymbol = new SimpleFillSymbol(Color.argb(0,0,0,0),SimpleFillSymbol.STYLE.SOLID); mMapView.addLayer(arcGISFeatureLayer); arcGISFeatureLayer.setRenderer(new SimpleRenderer(simpleFillSymbol)); arcGISFeatureLayer.setOnStatusChangedListener(new OnStatusChangedListener() { @Override public void onStatusChanged(Object o, STATUS status) { if (status==STATUS.INITIALIZED){ Log.i("huang","加载成功"); }else if(status==STATUS.INITIALIZATION_FAILED||status==STATUS.LAYER_LOADING_FAILED){ Log.i("huang","加载失败"); } } }); 上面虽然加载成功,但并看不到图层,而且报错: FeatureSetCallback.onError com.esri.core.io.EsriServiceException: Requested operation is not supported by this service. The requested capability is not supported. 仔细再看网络信息, 大体上知道为什么报 The requested capability is not supported。也就是不能用这种方法加载,而得用前面的代码加载!!! ArcGISDynamicMapServiceLayer 服务地址:http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer,这是美国的高铁图。 用浏览器打开,有三个子图层,Single Fused Map Cache: false! 下面是ArcGISDynamicMapServiceLayer的介绍: 加载代码 : private static final String DYNAMIC_USA_HIGHWAY_URL = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer"; private ArcGISDynamicMapServiceLayer usaHighwayLayer = null; private MapView mMapView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.map_view); usaHighwayLayer = new ArcGISDynamicMapServiceLayer(DYNAMIC_USA_HIGHWAY_URL); mMapView.addLayer(usaHighwayLayer); usaHighwayLayer.setOnStatusChangedListener(new OnStatusChangedListener() { @Override public void onStatusChanged(Object o, STATUS status) { if (status==STATUS.INITIALIZED){ Log.i("huang","加载成功"); }else if(status==STATUS.INITIALIZATION_FAILED||status==STATUS.LAYER_LOADING_FAILED){ Log.i("huang","加载失败"); } } });} 效果图 二、ArcGISFeatureLayer加载图层 服务地图http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/0,也就是上面服务的子图层。 ArcGISFeatureLayer arcGISFeatureLayer = new ArcGISFeatureLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/0", ArcGISFeatureLayer.MODE.ONDEMAND); mMapView.addLayer(arcGISFeatureLayer); arcGISFeatureLayer.setRenderer(new SimpleRenderer(new SimpleLineSymbol(Color.argb(250, 52, 17, 255),2))); arcGISFeatureLayer.setOnStatusChangedListener(new OnStatusChangedListener() { @Override public void onStatusChanged(Object o, STATUS status) { if (status==STATUS.INITIALIZED){ Log.i("huang","加载成功"); }else if(status==STATUS.INITIALIZATION_FAILED||status==STATUS.LAYER_LOADING_FAILED){ Log.i("huang","加载失败"); } } }); 注意要设置setRenderer,效果 ArcGISFeatureLayer 具有FeatureLayer的一些查询方法,与前面几讲里FeatureLayer查询相似,这里不再讲了。 //查询要素方法 queryIds(Query query, CallbackListener<int[]> callback) queryFeatures(Query query, CallbackListener<FeatureSet> callback) 在http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/0,页面底部, 点击Query进入查询要素界面,可直接 查询要素 where 1=1,点击Query(GET),可得到以下结果集 没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。 本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/7752063.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android GIS开发系列-- 入门季(11) Callout气泡的显示

一、气泡的简单显示 首先我们要获取MapView中的气泡,通过MapView的getCallout()方法获取一个气泡。看一下Callout的简单介绍: 大体的意思是通过MapView获取Callout,可以设置它的内容View,大小,显示的方位等。 写一个简单的测试: public class MainActivity extends Activity { private MapView mapView; private static final String TILED_WORLD_STREETS_URL = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"; private Callout callout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mapView = (MapView) findViewById(R.id.map_view); //添加一个基础的底图 mapView.addLayer(new ArcGISTiledMapServiceLayer(TILED_WORLD_STREETS_URL)); //地图点击事件 mapView.setOnSingleTapListener(new OnSingleTapListener() { @Override public void onSingleTap(float x, float y) { //屏幕坐标转地图坐标 Point point = mapView.toMapPoint(x,y); //设置显示位置 callout.show(point); } }); initCallout(); } private void initCallout() { //获取一个气泡 callout = mapView.getCallout(); //设置最大的长宽 callout.setMaxWidth(1200); callout.setMaxHeight(300); TextView tv = new TextView(this); tv.setText("这是一个气泡"); callout.setContent(tv); CalloutStyle calloutStyle = new CalloutStyle(); //设置尖尖角的位置,尖尖显示在气泡的左下角, calloutStyle.setAnchor(Callout.ANCHOR_POSITION_LOWER_LEFT_CORNER); callout.setStyle(calloutStyle); } } 显示的效果图如下: 二、通过xml方式设置Callout的Style 新建一个xml放在res/xml下,例如: <?xml version="1.0" encoding="utf-8"?> <resources> <calloutViewStyle anchor="5" backgroundAlpha="255" backgroundColor="#ffffff" cornerCurveDp="20" frameColor="#000000" maxHeightDp="300" maxWidthDp="500" /> </resources> 只需调用callout.setStyle方法来设置。 没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。 本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/7751976.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

年节季到来 开启路由器隐藏的洪荒之力

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 无线路由器已经随着移动互联网的兴起走入了千家万户,我们在家中进行无线上网时,却很少关注无线路由器本身。尤其是对于普通家庭用户来说,自己对于无线网络的了解并不是很多,大多数抱着“能上网就行”的心态,并没有将无线路由器的功能发挥到***。有一些非常实用的功能就静静的“躺”在后台设置中,只需简单进行调整,就能够优化我们的实际上网体验。 通过外接移动存储设备进行远程下载 现在,许多无线路由器都配备了USB接口,可以外接移动存储设备,这类无线路由器大多数都可以使用远程下载功能。使用迅雷远程下载功能非常简单,首先在路由器的迅雷下载页面获取验证码,然后在WEB端的迅雷远程下载页面进行路由器的绑定。然后就如同使用迅雷一样,在左上角新建任务,将资源的连接复制进去,或者上传种子,就可以让无线路由器将资源下载到移动存储设备中,省下了在家下载的时间。 无线路由器内置安全模块 除此之外,网络安全越来越受到人们的重视,许多无线路由器内置了安全防护功能,从互联网入口处保护用户的家庭网络安全。通过在路由器后台开启安全防护功能,路由器能够自动进行网址智能鉴定,深度保护上网安全。通过内置安全厂商的模块,进行网络活动分析分析,用户在上网时路由器会智能拦截恶意网址、仿冒网址和欺诈网址,同时还具有防病毒功能,实时保护用户网络安全。 打开QoS功能 ***,我们要介绍的是直接解决“抢网速”问题的QoS功能。QoS功能,也成为流量调控功能,这一功能可以针对某一个设备或者某个应用进行网速限制。当我们家中有多个设备进行上网时,不同的网络行为会使得家中带宽不堪重负。通过无线路由器的QoS功能,用户可以给经常使用迅雷下载和在线观看高清视频的设备进行限速使用。这样一来,家中的其它设备不会因为上面两个上网行为挤占带宽过多,而造成自己上网卡顿。大多数设备都支持智能调控,用户只需打开这一功能便可以拥有流畅的网络体验。

优秀的个人博客,低调大师

干货季01:vCenter Server安装到SSO的时候报错

昨天QQ群好友反应在安装vCenter Server安装到SSO的时候就报错了,于是我让他看了一下对应的安装日志信息,从下图所示来看是因为主机名的原因造成的,这让我联想到了AD域服务器,因为VMware的SSO是与AD域或LDAP结合的。详细提示如下所示: 这里我们可以看到他的计算机名为win2008_vc.test.com,大概判断为下划线原因所至。为确认其准确性于是我查了一下VMware相关的KB库,原因是因为特殊字符造成的,详细如下图所示: 解决方法: 修改其计算机名移除下划线。再安装SSO成功。至此问题解决!所以后期建议不要在主机名等一个地方用一些特殊字符,以免造成不必要的麻烦。

优秀的个人博客,低调大师

从灵感到完整 demo -- Workbuddy&&Codebuddy&&CNB协同实践

创意的灵感往往来自生活中的某一瞬间,当灵感迸发之时,大家是喜欢用笔记还是语音抑或视频记录下哪些宝贵的 idea ?不论之前大家习惯如何,在 agent 时代,Workbuddy 这类 agent 工具或许能够为你带来更胜一筹的体验,助力 idea 从灵光一闪转变为更加具体、详细的计划草案。正如:当笔者走在大街上时,看到某篇 blog ,突发奇想要将某个 web_search 接口以 js sdk 形式实现,但 api 文档太长懒得看,手边又没有电脑可以让我立马开始实践…… 而这时 Workbuddy web+桌面+小程序多端支持的特性就极为亮眼:只需在手机小程序中输入自己的idea,那么在短短数分钟之内便能得到一份详实且具备相当可信度的分析报告--是绝妙好点子还是重复造轮子,片刻时间即可水落石出,同时小程序上生成的报告丝滑同步至 web 端,将报告丢给负责 vibe coding 的 agent 极为便捷,无需自己在各设备间同步数据。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册