文章翻译完了,梳理一下,附Demo下载 基于mAppWidget实现手绘地图(一)–简介 基于mAppWidget实现手绘地图(二)–概要 基于mAppWidget实现手绘地图(三)–环境搭建 基于mAppWidget实现手绘地图(四)—如何附加java doc 基于mAppWidget实现手绘地图(五)—如何创建地图资源 基于mAppWidget实现手绘地图(六)–如何展示地图对象  基于mAppWidget实现手绘地图(七)–根据坐标添加地图对象 基于mAppWidget实现手绘地图(八)–…
一般来说,可以使用以下几种方式来控制地图的放大/缩小 : 使用控件底部的缩放按钮 双击控件 pinch手势 物理按键 :I键标识缩小 :O键表示放大.(只有设备具有物理按键才行)        当然,你也可以使用自己的按钮实现放大和缩小 缩小一个地图级别,调用: mapWidget.zoomIn(); 增加一个地图级别,调用 mapWiget.zoomOut(); 获取当前地图级别,调用: mapWidget.getZoomLevel(); 地图级别还可以在初始化MapWidget 时,由构造器…
http://lemberg.github.io/mappwidget/user_guide.html 最近在看一些导游类应用,发现一些景区的导览图使用的完全是自定义地图,也就是手绘地图.这种小范围使用的,专业的地图给人以亲切的感觉.但是他们是如何实现的呢,网上找了找实现思路,都没有太满意的. 在一家英国的网站上,发现了一个类库,可以实现类似的功能.试了一下它提供的demo,发现功能强大的超过了我的预期.在这里分享给大家,希望给大家提供一个思路吧.  翻译的有不准确的地方,请见谅. 大家先看看中…
为了展示选中的点,你需要完成以下步骤: 1.创建或者获得一个已经存在的图层 2.创建代表选中点的地图对象 3.把地图对象添加到图层 创建新图层 使用以下代码片段创建图层 int COFFEE_SHOPS_LAYER = 1; Layer layer = mapWidget.createLayer(COFFEE_SHOPS_LAYER); 根据索引或者ID获得一个已经存在的图层 int COFFEE_SHOPS_LAYER = 1; Layer layer = mapWidget.getLayer…
首先,你在Eclispe开发环境中新建一个项目:然后,可以通过Eclispe项目管理工具把这个项目集成到你的app项目中.下面手册会手把手教你如何正确创建一个地图对象. 第一: 新建一个新的Anroid项目   第二:(注意项目细节) 设置项目名称 核对“Create new project in workspace”单选按钮是否选择 选择“Build Target” 检查和命名“Create activity” 设置“Min SDK Version”版本  注:其中Eclispe中的按钮或名词…
一般来说,可以使用以下几种方式来控制地图的放大/缩小 : 1. 使用控件底部的缩放按钮 2.双击控件 3.pinch手势 4.物理按键 :I键标识缩小  :O键表示放大.(只有设备具有物理按键才行) 当然,你也可以使用自己的按钮实现放大和缩小 缩小一个地图级别,调用: mapWidget.zoomIn(); 增加一个地图级别,调用: mapWiget.zoomOut(); 获取当前地图级别,调用: mapWidget.getZoomLevel(); 地图级别还可以在初始化MapWidget 时,…
使用切图工具创建不同名称的地图资源.然后将这些资源放置到assert文件夹内. 像下面这样: 在代码中,根据不同的地图名称,查找地图. map = new MapWidget(this, "map", initZoomLevel); or map = new MapWidget(this, "map2", initZoomLevel);…
这个很简单,想要显示或隐藏任意类型的地图对象,首先要对地图对象进行分类.不同类型的地图对象放置到不同的地图图层上,然后控制地图图层的显示/隐藏即可. 实例: Layer sportsLayer = mapWidget.getLayerById(SPORTS_LAYER); sportsLayer.setVisible(true); // Shows the layer sportsLayer.setVisible(false); // Hides the layer…
若显示当前用户位置,你需要执行以下步骤: 1.添加ACCESS_COARSE_LOCATION 和ACCESS_FINE_LOCATION权限在AndroidManifest.xml中 2.用mapWidget.setShowMyPosition(true)来显示当前用户的位置 得出的结果是,你应该看到地图上的位置标记: 如何改变位置指针指向的方式? 位置标记组成成分:圆圈指针.箭头指针.精确区域以及精确区域的边框.你可以改变标记的每个元素. 为了改变标记的每个元素,你需要执行以下步骤: 1.获…
你可以使用以下几个方法: MapWidget.scrollMapTo(android.location.Location location); MapWidget.scrollMapTo(android.graphics.Point position); MapWidget.scrollToCurrentLocation(); MapWidget.jumpTo(android.location.Location location); MapWidget.jumpTo(android.graphi…
为了将地图对象放置到某个特殊的地理位置上,你需要: 1. 创建地图对象 2.添加地图对象到图层(任何位置) 3. 移动该地图对象,使用 MapObject.moveTo(Location location) 方法 示例代码: private void addPOI() { Layer layer = map.getLayerById(SPORTS_LAYER); int objectId = 0; Drawable drawable = getResources().getDrawable(R.…
地图资源可以通过Slicing Tool工具生成,教程如下: 1.打开Eclipse标准版4.3.2,以Java项目形式导入”slicingtool“项目,运行.(必须是eclipse4.3.2及以上版本,不然会少包而报错) 2.此时会新启一个eclipse,在新的里面widow-->show view-->mAppWidget-->Map Slicing Tool,打开窗口: 选择被切块格数大小(一般建议256格) 如果你想使用地图的GPS特点,填写校正数据 Export后,会得到一个…
如何把javadoc添加到代码库中? How to attach javadoc to the library? 项目属性——>Java Build Path——>Libraries.选择mappwidget的javaDoc位置,然后点击Edit 选择“Javadoc in archive” 单选按钮 选择“Workspace file” 单选按钮 在“Archive path”编辑区域中写上mappwidget.jar的路径 在“Path within archive”编辑区域输入“java…
离线地图是一张被切成类似瓷砖般格子图像组成,这些被切开的格子组织成多个缩放级别.缩放级别是从0开始.0这个缩放级别,地图图像的尺寸为1*1像素.在每下一个缩放级别,图像尺寸则会两倍递增. 每个地图都是有层和地图对象的. 层是一个抽象的东西,它用来存放地图对象.层可见或不可见.如果层是不可见的,那么存放此层中的地图对象在地图上也是不可见的. 地图对象是可以在地图上显示的对象,其中绘制对象可以用来显示地图对象.地图对象可以添加到任何层,并且对象坐标是以像素为单位. 为了定义一个对象的位置,坐标用原本…
最好的处理方式就是弹出一个对话框,将用户触摸过的控件罗列出来.你可以通过实现OnMapTouchListener来处理. 参考以下代码,实现上述功能: mapWidget.setOnMapTouchListener(new OnMapTouchListener() { public void onTouch(MapWidget map, MapTouchedEvent event) { List objectTouchEvents = event.getTouchedObjectIds(); /…
为了在放大前后执行一些操作,你需要添加MapEventsListener 的实例到MapWidget,使用MapWidget.removeMapEventsListener移除该监听器. mapWidget.addMapEventsListener(new MapEventsListener() { public void onPreZoomOut() { // You can hide your map object's pop-up here } public void onPreZoomI…
为了响应touch事件,需要设置OnMapTouchListener 示例: private void initMapEventsListener() { mapWidget.setOnMapTouchListener(new OnMapTouchListener() { public void onTouch(MapWidget map, MapTouchedEvent event) { List objectTouchEvents = event.getTouchedObjectIds();…
你有两种方式确定用户的当前位置: 1.使用安卓标准方式 2. 使用MapWidget的监听器 标准方式: 在你的acivity中加入: LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME, MIN_DISTANCE, new…
手绘地图导航 第三方库 NAMapKit, 1)支持在手绘图上标记.缩放 2)支持在单张图片 3)支持瓦片小图片 思路 前提:美工已经切好手绘图,并告知我们当前的缩放级别. 1)确定好手绘图左上角点在百度地图上的经纬度坐标. 2)将百度地图经纬度坐标转换成平面坐标 /**  *将经纬度坐标转换为投影后的直角地理坐标  *@param coordinate 待转换的经纬度坐标  *@return 转换后的直角地理坐标  */ UIKIT_EXTERN BMKMapPoint BMKMapPoint…
环境:微信SDK2.9+   + uniapp (可切换直接使用.map.js不限制环境) 正题: 先创建一个地图组件 <template> <view class="customCanvasComponent"> <!-- 建立画布坐标系 --> <canvas :style="{ width: `${options.style.width}rpx`, height: `${options.style.height}rpx`, bo…
概述 Microsoft Tech Summit 2018 微软技术暨生态大会将于10月24日至27日在上海世博中心举行,这也会是国内举办的最后一届 Tech Summit,2019 年开始会以 Microsoft Ignite Tour 的形式出现,大家可以在官网查看本次会议信息:https://www.microsoft.com/china/techsummit/2018/ 今年非常荣幸最终入选了分会场课程,我会在 27日下午5点给大家带来 “利用 Windows 新特性开发出更好的手绘视频…
从2017年11月开始,我们开始规划和开发全新的来画Pro,在12月23日的短视频峰会上推出了预览版供参会者体验,得到了很高的评价和关注度.吸取反馈建议后,终于在2018年1月11日正式推出了全新版本的 UWP App,定名为"来画视频".(根据微软应用商店的命名规则,大家可以继续搜索"来画Pro") 全新版本的 UWP 来画视频,适配了来画平台的手绘视频模板,对创作工具做了全新的改版. 适配来画平台手绘视频模板 来画成立两年多的时间里,一直在积累手绘视频模板,目前…
研究生做的稍微有点水平的就这两个项目了:一个是利用SVM做手绘草图的分类,另一个是利用JointBoost+CRF做手绘草图的分割.总结得出的经验是做研究的方法就是将别人大神的代码看懂然后改成适合自己项目的代码,转而这次记录的是另一个项目就是利用JointBoost+CRF做手绘草图的分割. 引言 手绘草图的分割就是语义上的分割,如下面两个图:    左图是未标记的"手绘草图",右图是人工标记了的手绘草图,我们想训练一个分类模型能够对手绘草图上的样点进行语义分类,即判断某点所属类别(头…
基于zepto的手机焦点图,查看地址:demo (建议使用手机浏览器查看)代码如下: <!DOCTYPE HTML> <html> <head> <title>zepto实现手机网站焦点图触屏划动效果</title> <meta content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" name="view…
开篇先来说一下我和来画的故事,以及写这篇文章的初衷. 今年年初时,我还在北京,在 Face++,做着人脸识别技术的 Windows 和 Android 端,做着人工智能终将实现世间所有美好的梦.这时的我已经离开 UWP,甚至 C# 很久了,写着 C++ 和 Java,当时真的没想过会再次回到 UWP 的阵营,直到 4 月份的时候,一次很偶然的机会,我的一位微软的朋友,也是 Face++的老朋友找到我询问我在 Face++ 的工作近况,本以为只是很久没联系之后的简单交流,直到他提到:在深圳,有一家…
开篇先来说一下写这篇文章的初衷. 初到来画,通读了来画 UWP App 的代码,发现里面确实有很多比较高深的技术点,同时也是有很多问题的,扩展性,耦合,性能,功能等等.于是我们决定从头重构这个产品,做一个全新的 “来画Pro” 出来,历经三个月的世间,这个产品终于正式上架. (做个小广告,在 Windows 应用商店搜索 “来画Pro” 就可以找到,目前公司定位为收费应用,但是有一个月试用期,如果大家感兴趣,可以跟我要免费代码.这里是 IT之家的报道:https://www.ithome.com…
手绘视频最终的生成物是视频文件,前面几篇主要讲的是手绘视频的创作部分,今天讲一下手绘视频的导出问题.主要以 UWP 为例,另外会介绍一些 Web 端遇到的问题和解决方法. 如上所述,手绘视频在创作后,最终会导出为视频文件,如 MP4,WMV 等,我们目前的选择是 MP4,整个导出大致分为几个步骤: 1. 后台渲染手绘视频 后台渲染我们借助的还是 Win2D,前面几篇介绍过,创作绘制过程也是借助 Win2D 来完成动态渲染的.把需要渲染的元素和指定的时间等属性传递给 Win2D,其他的由 Win2…
本篇作为技术分享系列的第四篇,详细讲一下手绘视频中 Surface Pen 和 Surface Dial 的使用场景. 先放一张微软官方商城的图,Surface 的使用中结合了 Surface Pen 和 Surface Dial. Surface Pen 的使用场景不难想象,就像 iPad 和 Android Pad 配置的笔一样,Surface Pen 也在书写.书画和日常操作中发挥着很重要的作用.微软的 Surface Pro 和 Surface Book 系列中都重点强调了 Surfac…
本篇作为技术分享系列的第三篇,详细讲一下手绘视频中结合视频的处理方式. 随着近几年短视频和直播行业的兴起,视频成为了人们表达情绪和交流的一种重要方式,人们对于视频的创作.编辑和分享有了更多的需求.而视频的编辑.剪辑方式,也由过去需要借助专业的视频剪辑软件,专业的视频剪辑操作者操作,变为现在的普通用户可以使用视频类 App 很方便的创作出视频. 短视频和直播类 App 对于视频的处理,主要集中在:滤镜.美颜.贴纸.视频剪切和拼接.视频变速.音轨合成,这些实现基本都是基于 OpenCV.OpenGL…
本篇作为技术分享系列的第二篇,详细讲一下文字的解析和绘制,这部分功能的研究和最终实现由团队共同完成,目前还在寻找更理想的实现方式. 首先看一下文字绘制在手绘视频中的应用场景 文字是手绘视频中很重要的表现形式,应用场景很广,比如字幕.旁白和一些重要的文字说明提示.和普通视频,如 MV.电影等使用某一种固定字体,如宋体.微软雅黑字体不同的是,在手绘视频中,我们通常会使用一些很有个性化的字体,如毛笔字体.卡通字体和很多手写字体.另一个很大的区别,电影等中的问题,是整体出现的,不存在绘制的过程,所以只需…