基于PhoneGap+JQuery Mobile+ArcGISJavascript API实现

旅游日记——基于PhoneGap+JQuery Mobile+ArcGISJavascript API实现 【关键思路】 1)使用PhoneGap来调用移动设备的GPS,相机等设备来获取地利位置和图片、视频等信息; 2)使用ArcGIS JavascriptAPI在地图上显示地理位置和照片,浏览日记内容; 3)使用PhoneGap打包成各个平台上的安装包。   【主要功能】 主要实现3个功能:地图展示、写日记和日记管理。 1)写日记     a)      获得当前的地理坐标; 阅读详情

【关键思路】

1)使用PhoneGap来调用移动设备的GPS,相机等设备来获取地利位置和图片、视频等信息;

2)使用ArcGIS JavascriptAPI在地图上显示地理位置和照片,浏览日记内容;

3)使用PhoneGap打包成各个平台上的安装包。

 

【主要功能】

主要实现3个功能:地图展示、写日记和日记管理。

1)写日记

    a)      获得当前的地理坐标;

    b)     获取摄像头,记录日记内容,如日记名称,文字内容,照片。

2)地图展示

    a)      将日记以点的形式标示在地图上;

    b)     触摸日记点显示日记详细信息。

3)日记管理

    a)      以列表的形式显示所有日记;

    b)     点击日记,显示日记的全部信息;

    c)      对日记进行编辑及删除操作。

 

【功能实现】


1、JQueryMobile实现界面设计

由于PhoneGap不提供UI库,所以使用JQueryMobile来设计移动设备的UI。

以下代码是Footbar的UI设计,实现功能切换:

 

    <div data-role="footer"data-id="myfooter"data-position="fixed">

       <div data-role="navbar"data-iconpos="bottom">

           <ul>

              <li><a href="#home"data-icon="grid"data-transition="none"class="ui-btn-active">地图</a></li>

              <li><a href="#new"data-icon="star" data-transition="none">新日记</a></li>

              <li><a href="#travellist"data-icon="gear"data-transition="none">日记列表</a></li>

 

           </ul>

       </div><!-- /navbar -->

 </div>

 

        主界面

 

2、PhoneGap获取地理位置

使用PhoneGap的navigator.geolocation.getCurrentPosition函数来获得当前的地理位置信息。

function getLocation(){

    if(!navigator.geolocation){

       alert("can not use geolocation");

       return;

    }

navigator.geolocation.getCurrentPosition(locSuccess,locFail,{enableHighAccuracy:false});

}

 

成功获得地理位置,执行locSuccess函数

functionlocSuccess(position){

    trNotes.lat=position.coords.latitude;

    trNotes.lng=position.coords.longitude;

}

 

如果获得地理位置失败,执行locFail函数

functionlocFail(error){

    varmsg="Cannot determine location.";

    if(error.code==error.PERMISSION_DENIED)

    {

       msg+="Geolocation is disabled.";

    }

    try{

       navigator.notification.alert(mag,null,"Geolocation");

    }catch(e){

       alert(msg);

    }

}

3、PhoneGap调用设备相机

使用PhoneGap提供的navigator.camera.getPicture函数获得设备的照片或者通过设备的相机来拍摄照片。

function getPhoto(){

  //alert("click getPhoto");

  if(!navigator.camera) {

     alert("camera can not use");

     return;

  }

 

//Camera.DestinationType.FILE_URI表示返回照片的文件路径,如果//Camera.DestinationType.DATA_URL表示返回以base64编码的字符串

 

  navigator.camera.getPicture(onSuccess,onFail,{ quality:50,destinationType:Camera.DestinationType.FILE_URI });

 

拍照成功后,执行onSuccess函数

  functiononSuccess(imageData) {

     //alert("camer successful!!!");

     //alert(imageData);

     varnewnote=$("#newNote");

     varsrc=imageData;

     //var src="data:image/jpeg;base64," +imageData;

     varimg=$("#myPhoto");

     img.attr("src",src);

     img.css("display","block");

     //var img="<imgsrc="+src+"/>";

     //newnote.append(img);

     newnote.listview("refresh");

   

  }

 

  functiononFail(message) {

     alert(' carema Failedbecause: '+message);

  }


调用相机


写日记

 

4、ArcGIS Javascript API实现日记标示

主要用于日记在地图上的展示,将存储的地理位置坐标,日记的标题、内容和照片,构建成ArcGIS Javascript API支持的Graphic,并显示到地图上。

    if(row.latitude){

       varpt=esri.geometry.geographicToWebMercator(newesri.geometry.Point([row.longitude,row.latitude],newesri.SpatialReference({wkid:4326})));

                     varsymbol=newesri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE,12,

                      newesri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,

                          newdojo.Color([210,105,30, 0.5]),8),

                          newdojo.Color([210,105,30,0.9]));

       

                     varattr={"title":title,"content":content,"entered":entered,"updated":updated};

 

                      /*var infoTemplate = new esri.InfoTemplate("Attributes","<b>NOTE Name: </b><b>title</b><br/>content<br><img></img><br>entered");*/

                     varinfoTemplate=newesri.InfoTemplate("日记信息","<b>标题: </b><b>${title}</b><br/><b>内容:</b>${content}<br><img style='height:200px;width:200px;'src="+photo+"></img><br><b>时间: </b>${entered}");

                      varg=newesri.Graphic(pt,symbol,attr,infoTemplate);

                     

                      dojo.connect(g,"onClick",function(evt){

                         alert("graphic click"); 

                         vargraphic=evt.graphic;

//                           if(map.infoWindow.isShowing) {

//                                map.infoWindow.hide();

//                            }

                            

                             map.infoWindow.clearFeatures();

                             map.infoWindow.setFeatures([graphic]);

                             map.infoWindow.show(evt.mapPoint);

                            

                          });

                     

                      map.graphics.add(g);

                  }


在地图上显示


详细信息

5、PhoneGap打包不同平台上的安装包

打包为native App,方法和步骤详见:http://www.phonegap.cn/?page_id=442

在IOS模拟器中的系统截图:


系统主界面

 

地图显示


日记列表


日记信息-编辑-删除


【源码下载地址】

iOS版:http://download.youkuaiyun.com/detail/arcgis_mobile/4209747

Android版:http://download.youkuaiyun.com/detail/arcgis_mobile/4209754


旅游日记--Android源码 应博友们的要求,公开博文“旅游日志”的源码,包括Andriod和iOS平台的工程文件,供大家下载测试用。 立即下载

相关推荐

微信小程序图片和文字布局实例:旅行日记.rar

微信小程序仿面包旅行源码,除了完成的功能外,本源码主要是向微信小程序开发者演示小程序中界面和文字布局方面的技巧,因为这个旅行日记在界面方面写的相当不错了,若对微信界面设计方面不自信,可下载这个源码参考学习哦,运行效果如截图所示。   本小程序若正常运行,需要服务端提供内容才行哦。

arcgis api for js4.x 移动端--按钮点击实现地图旋转

如图:因为项目中使用的是arcgis for js,并且移动端和PC端共用的同一套代码,只是做了一下兼容。 这样子,在移动端就出现了一个问题,就是地图旋转的问题。。。没有右击事件了啊,,,问了客服说是自己自定义下,这个就比较麻烦了,刚刚开始写前端gis的放弃了。采用了比较简单的组件。 官网例子如下:https://developers.arcgis.com/javascript/latest/sample-code/scene-easy-navigate/ ...

baicai_123的专栏 1126

日记本 记录生活.rar

克隆代码: cd path/to/your/workspace git clone https://github.com/harveyqing/BearDiary.git 打开微信Web开放者工具(注意:须v0.10.101100及以上版本) 添加项目 AppID:选无AppID 项目名称:任意填写 项目目录:path/to/your/workspace 点击 添加项目

在移动设备中创建ArcGIS API for JavaScript地图应用程序

本教程将演示如何通过响应式移动专用布局窗口小部件创建移动友好的webapp 1、支持的设备 这个模板支持安卓和IOS横向和纵向姿态,它使用Dojo Mobile框架并包含Dojo标题窗口等小部件。 2、使用移动Web应用程序元素标记 3、使用Compact版ArcGIS API fo

GISXX 5943

旅游日记源码--iOS版

应博友们的要求,公开博文“旅游日志”的源码,包括Andriod和iOS平台的工程文件,供大家下载测试用。

基于android和百度地图API的旅行日志程序及方案的设计与实现

本文旨在为使用基于Android操作系统的移动设备(如手机、平板电脑等)的用户提供一种准确、方便的定位系统,可以通过经纬度信息,甚至仅仅是地名,就能在地图上找到该地的地理位置。然后通过截图存储,把使用者所到的任何地方以图片和文本两种方式保存下来,本设计还提供POI搜索、线路规划、公交线路查询、卫星地图等功能。 创新点:以截图的方式把当前位置以“日期_时间.png”的格式保存在SD卡里,而且程序还可以把当前位置的经纬度信息保存下来, 通过把手机与电脑连接, 可以方便的把保存的图片与保存有旅行日志坐标信息的TXT文件导入电脑,方便保存和进一步的处理,比如,google地球上展示等等。

Geolocation---HTML5调用百度地图API进行地理定位实例

自从HTML5的标准确定以后,越来越多的网站使用HTML5来进行开发。虽然对HTML5支持的浏览器不是很多,但是依然抵挡不了大伙对HTML5开发的热情。今天为大家带来的是使用HTML5调用百度地图API进行地理定位实例。请看下面代码: [html] view plaincopy >    html>    title>HTML5调用百度地图API进行地理定位实例title>

yyb.ye专栏 6328

旅游日记

旅游日记

ArcGis API JS 4.X本地化部署与地图的基础使用

准备工作 首先下载ArcGIS API for JavaScript4.x,这里下载的是4.19。 官方下载地址:https://developers.arcgis.com/downloads/ arcgis_js_v419_api:这个是ArcGIS的Api网站,部署后,我们可以引用这个网站里的JS,然后实现地图的使用。 arcgis_js_v419_sdk:这个是ArcGIS的Api的SD...

kiba518的博客 1460

将雷达连接到树莓派的串口

dev/ttyAMA0 是树莓派的主要 UART(用于 GPIO 引脚 8 (TXD) 和 10 (RXD))。通常,树莓派使用 GPIO 引脚 8 (TXD) 和 10 (RXD) 进行串口通信。树莓派上通常有两个串口:/dev/ttyS0 和 /dev/ttyAMA0。你需要确认雷达的 TX 和 RX 引脚,并与树莓派的对应引脚连接。VCC(电源)连接到树莓派的 3.3V 或 5V(根据雷达的要求)MR(Receive)连接到树莓派的 GPIO 8 (TXD)GND(地)连接到树莓派的 GND。

qq_45943628的博客 1464

AI Agent在智能投研中的实战:多智能体信息整合与策略生成

本文将带你从0到1完整搭建一套基于LangChain和AutoGen的多智能体AI投研系统首先,我们会一起梳理智能投研的核心痛点、金融数据的独特性,以及为什么传统AI Agent,尤其是多智能体协同架构,是破局的唯一最优解;RAG检索增强生成(但这次是金融领域定制化的,包括向量检索+时序数据检索+知识图谱检索的“三元检索增强”)、AutoGen多智能体协同框架。

软件工程实践的博客 381

【技术直通车】旅游日记——基于PhoneGap+JQuery Mobile+ArcGISJavascript API实现

【关键思路】 1)使用PhoneGap来调用移动设备的GPS,相机等设备来获取地利位置和图片、视频等信息; 2)使用ArcGIS JavascriptAPI在地图上显示地理位置和照片,浏览日记内容; 3)使用PhoneGap打包成各个平台上的安装包。   【主要功能】 主要实现3个功能:地图展示、写日记和日记管理。 1)写日记     a)

ArcGIS产品与技术专栏 1842

成本会计(第九版)王忠孝课后习题答案解析

在掌握了基础知识之后,我们还需要培养自己的实际操作能力。此外,在学习过程中,遇到困难时,要及时向老师、同学请教,不要害怕暴露自己的不足。三人行,必有我师,每个人都有值得学习的地方。首先,我们需要认真阅读教材,把基础知识掌握牢固。在这里,我建议大家使用《成本会计(第九版)》的配套练习册,这样可以帮助我们检查学习效果。同时,网上的一些优质课程和论坛也是不错的学习资源,例如网易云课堂、中国大学MOOC等。别担心,这里我给大家推荐一些实用的学习资料和方法,帮助你更好地掌握这门课程。出版社: 大连理工大学出版社。

weixin_58833001的博客 1887

使用Dreamweaver 5.5 + JQuery + PhoneGap+ArcGIS Javascript API 开发跨平台手机应用程序

Esri为iOS、Android、Windows Phone提供了相应的API,GIS开发者需要针对不同的平台,使用不同的ArcGIS移动API进行同一款移动GIS应用的开发,不仅提高了开发成本,加大了开发难度,也造成了资源、人力的浪费。         那么能不能一次开发就可以应用到各个移动终端呢?虽然现在移动Web应用还没有兴起,但是答案是肯定的:HTML5+JQuery+Phone

6924

python入门:Anaconda和Jupyter notebook的安装与使用

一、安装和使用Anaconda 1、anaconda是什么? Anaconda在英文中是“巨蟒”的意思,与python的意思相近,它是python的包管理器和环境管理器。 2、为什么需要安装anaconda? 原因有以下几点: 附带一大批常用的数据科学包,方便立即开始处理数据 管理包 anaconda是在conda(一个包管理器和环境管理器)上发展来的;而conda可以很方便地对第三方的包进行安装、卸载和更新。 管理环境 conda可以为不同的项目建立不同的运行环境,避免不同的项目或包版本

PY洋洋 1万+

【WorkBuddy专栏15】灵感被折叠到「更多」里,真的不重要了吗?——一个「被低估」功能的当下价值与未来演变

【WorkBuddy专栏15】灵感被折叠到「更多」里,真的不重要了吗?——一个「被低估」功能的当下价值与未来演变

AI人人懂 958

利用HTML5 Geolocation API在百度地图中显示你的位置

代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"&gt...

weixin_30690833的博客 444

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南

在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。

PeterPan的博客 586

ArcGIS for Mobile 10.1新特性概览

8、ArcGIS on iOS:      移除了底端的标签,将最常用的工具移到了顶端,使用起来更加容易;     App store中新增了许多ArcGIS的应用。   7、ArcGIS on Windows Phone: 提供与ArcGIS on iOS同样的功能和体验; 以及 windows phone marketplace上的应用;   6、ArcGIS

2828

计算机视觉卷积神经网络(CNN)基础:从LeNet到ResNet

计算机视觉卷积神经网络(CNN)基础:从LeNet到ResNet,在计算机视觉领域,卷积神经网络(Convolutional Neural Network,CNN)已然成为推动众多任务发展的核心力量。从早期简单的图像识别,到如今复杂的目标检测、语义分割、图像生成等任务,CNN 都展现出了卓越的性能。CNN 的发展历程见证了一系列经典模型的诞生,其中 LeNet 作为开山之作,为 CNN 的发展奠定了基础,而 ResNet 则通过创新性的设计,突破了传统神经网络的限制,使得网络能够构建得更深、性能更优。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 14万+

Qt Android MySql 数据库驱动编译(详细图解步骤)

第一步.先介绍下环境搭建: Qt 版本 5.12.11 下载链接 https://download.qt.io/archive/qt/5.12/5.12.11/qt-opensource-linux-x64-5.12.11.run Ubuntu 18.04.6 LTS 下载链接 JDK版本 1.8.0_191 下载链接https://www.oracle.com/java/technologies/downloads/ Android Studio版本 ...

h a 6 6 6 c k 为 你解决复杂难题! 3378

ArcGIS移动客户端离线底图的几种解决方案【转】

   原文地址:http://blog.newnaw.com/?p=736======================================== 移动GIS中,通常将数据分为两大类:basemap layer和operational layer。前者是指漫游或导航时起参考作用的图层,这些图层内容通常不会变化,只起到视觉辅助作用,称为底图图层;后者是指存储GIS...

weixin_34326179的博客 809

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

webapp系列开发之二:Dreamweaver CS6配置Phonegap运行环境介绍

安装好CS6后,点击菜单栏上的“站点”: 然后选择 Phonegap Build服务: 点击Phonegap Build 配置后,会弹出下图: 选择sdk根目录,我这里的目录是(C:\Program Files\adt-bundle-windows-x86-20130522\sdk)点击保存,这里点击保存的话是不会有反应的,所以自己确认点击保存按钮后关闭该

瑺圊樹的专栏 2148

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ArcGIS js 3.x和4.x变化

1、4.x 多了MapView,这是为了通三维的SceneView同步,引入MVC模式 4.x 如下: var map = new Map({ basemap: "streets" }); var view = new MapView({ container: "viewDiv", map: map }); 3

QDKCY_RainBoy的专栏 3475

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 因为数据库正在使用,所以无法获得对数据库的独占访问权---还原或删除数据库的解决方法
下一篇: js判断是否在微信浏览器中打开
blacksource
博客等级 码龄20年 66粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值