带海拔经纬度海拔天气的相机苹果APP

App Store 上的“海拔高度计--实时监测,方向、指南针、速度、天气”
只能在 iOS 设备上的 App Store 获取此 App。
一款简单实用,功能全面的应用,能够实时展示你当前的海拔高度、温度、速度、经纬度以及日出、日落时间等,还有灵动的实时地图、指南针,居家旅行必备!
==应用特色==-简洁明亮的界面设计-GPS自动定位,无需手动选择-自动显示当前海拔高度、速度、温度、经纬度-独特的弧形地图设计,附带指南针功能-提供多种数值单位选择-显示当地日出、日落时间-获广告支持,可升级至无广告版
处理某些区域无法显示数据问题
优化效果修改BUG
版本 1.2.1
修复设置单位后无法保存的问题
4.8(满分 5 分)
界面简洁大方,数据准确,问题解决及时,就算有广告也是一款很棒的工具软件。
界面简洁大方,数据准确,问题解决及时,就算有广告也是一款很棒的工具软件。
启用“家人共享”后,此 App 最多可供 6 名家庭成员使用。iPhone 6上能显示地理位置的相机App哪个比较好用点_百度知道
iPhone 6上能显示地理位置的相机App哪个比较好用点
我有更好的答案
使用“海拔相机”,轻松搞定。我一直在用,拍摄的照片自动带有当时GPS卫星时间,当时的海拔、经度、纬度以及拍摄的角度,还带有地图,功能很强大且全部免费。App Store中搜索“海拔相机”即可找到,希望帮到你。
采纳率:100%
其实苹果自带拍照的相机就是有记录拍摄地理位置的,不需要其他软件的哦,你把你之前拍摄的照片打开,上面有一个照片,共享,相簿,,,你只需要点击照片就可以看到之前拍摄的照片是在哪里拍的了
为您推荐:
其他类似问题
iphone的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。急求 苹果手机显示海拔高度的相机App?_百度知道
急求 苹果手机显示海拔高度的相机App?
我有更好的答案
我一直在用,“海拔相机”,轻松显示海拔高度。拍的照片自动带有当时GPS卫星时间,当时的海拔、经度、纬度以及拍摄的角度,还带有地图,功能很强大且全部免费。App Store中搜“海拔相机”即可找到,希望帮到你。
采纳率:50%
为您推荐:
其他类似问题
您可能关注的内容
海拔高度的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。天气相机 v3.0.1下载总览截图欣赏下载地址存档教程网友评论猜你喜欢一款将数据与拍照合二为一的安卓应用,下载天气相机安卓版即可在拍照的同时将天气、海拔、位置信息纳入图片中,下载来试试吧。软件介绍天气相机(Weather Photos) 太酷了!现在就把天气、海拔和位置信息拍在照片里!用相机查询天气,用照片记录生活,同时可以微信一键分享朋友圈,让更多的人了解你身边发生和正在发生的事情,天气相机让真实的镜头记录生活的点滴。软件特色- 气温、地理位置、海拔、空气污染指数时时更新- 漂亮的高分辨率天气信息显示- 已支持全球数万个城市和地区- 分享到微博、微信、朋友圈、Facebook、Twitter等社区- 支持将生成的天气相片保存到本地相册- 天气相机超越传统天气预报软件,温度计。更新说明1.修复已知问题2.提升稳定性。
安卓天气软件下载,出门在外总避免不了天气的变幻无常,而没有及时查看天气预报而带来的突发状况相信给很多小伙伴都造成了不小的困扰。为了不再为突发的天气状况而烦恼,不妨未雨绸缪的来下载一款好用的天气软件吧不安卓照相软件下载,玩自拍发微薄微信会用到拍照功能,小编在这里给大家提供了大量安卓拍照软件,各种特效功能以及优化,可以为网友的照片获得意想不到的特效。还在为自己的照片不好看还纠结吗此也卖弄照相软件绝对能够
天气相机安卓 v3.0.1
猜你喜欢售价:免费大小:3.9M语言:简体类别:拍照美化系统支持:Android版本:v3.0.1更新:本类推荐60.0M61.8M51.7M51.8M47.8M45.5M50.9M35.6M14.4M49.1M本类排行51.8M61.8M60.0M28.4M28.2M33.0M46.5M47.7M36.7M32.3M一款天气app的温度曲线图的实现
最近在开发一款天气app,有一个功能是显示当天24小时每三个小时的气温状况,这个功能无疑要用图表来实现最好了。所以在github上找到一个国人开发的图表库,XCL-Charts。
先上效果图:
首先创建一个SplineChartView继承自GraphicalView,再主要实现三个方法
第一个是关于图表的渲染
private void chartRender()
//设置绘图区默认缩进px值,留置空间显示Axis,Axistitle....
int [] ltrb = getBarLnDefaultSpadding();
chart.setPadding(ltrb[0] + DensityUtil.dip2px(this.getContext(), 20), ltrb[1],
ltrb[2]+DensityUtil.dip2px(this.getContext(), 30), ltrb[3]);
//显示边框
chart.showRoundBorder();
chart.setCategories(labels);
chart.setDataSource(chartData);
chart.setCustomLines(mCustomLineDataset);
//数据轴最大值
chart.getDataAxis().setAxisMax(40);
chart.getDataAxis().setAxisMin(-40);
//数据轴刻度间隔
chart.getDataAxis().setAxisSteps(2);
//标签轴最大值
chart.setCategoryAxisMax(5);
//标签轴最小值
chart.setCategoryAxisMin(0);
//背景网格
PlotGrid plot = chart.getPlotGrid();
plot.hideHorizontalLines();
plot.hideVerticalLines();
chart.getPlotArea().setBackgroundColor(true, Color.GRAY);
chart.getCategoryAxis().getAxisPaint().setColor(Color.WHITE);
chart.getCategoryAxis().getAxisPaint().setTextSize(6);
chart.getCategoryAxis().hideTickMarks();
chart.getCategoryAxis().getTickLabelPaint().setColor(Color.WHITE);
chart.getCategoryAxis().getTickLabelPaint().setFakeBoldText(true);
chart.getCategoryAxis().setTickLabelMargin(25);
chart.getCategoryAxis().getTickLabelPaint().setTextSize(25);
//不使用精确计算,忽略Java计算误差,提高性能
chart.disableHighPrecision();
chart.disablePanMode();
chart.hideBorder();
chart.getPlotLegend().hide();
chart.getDataAxis().hide();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("tag", e.toString());
其中chart.getPlotArea().setBackgroundColor(true, Color.GRAY);是设置图表绘制区的颜色,chart.getDataAxis().setAxisMax(40);在我的app中表示能显示的最高温度是40摄氏度,chart.getDataAxis().setAxisMin(-40);表示能显示的最低温度是-40摄氏度。
第二个和第三个都是绑定数据的。
public void setChartDataSet(List temps)
//线1的数据集
List linePoint1 = new ArrayList();
linePoint1.add(new PointD(0d, Double.parseDouble(temps.get(0))));
linePoint1.add(new PointD(1d, Double.parseDouble(temps.get(1))));
linePoint1.add(new PointD(2d, Double.parseDouble(temps.get(2))));
linePoint1.add(new PointD(3d, Double.parseDouble(temps.get(3))));
linePoint1.add(new PointD(4d, Double.parseDouble(temps.get(4))));
linePoint1.add(new PointD(5d, Double.parseDouble(temps.get(5))));
SplineData dataSeries1 = new SplineData("Go",linePoint1,
Color.WHITE );
//把线弄细点
dataSeries1.getLinePaint().setStrokeWidth(3);
dataSeries1.setLineStyle(XEnum.LineStyle.DASH);
dataSeries1.setLabelVisible(false);
dataSeries1.setDotStyle(XEnum.DotStyle.RING);
dataSeries1.getDotPaint().setColor(getResources().getColor(R.color.white));
dataSeries1.getPlotLine().getPlotDot().setRingInnerColor(getResources().getColor(R.color.grey));
chartData.add(dataSeries1);
this.invalidate();
public void setChartLabels(List&String& weather){
String[] times={"20:00\n","23:00\n","2:00\n","5:00\n","8:00\n","11:00\n"};
for(int i=0;i&weather.size();i++){
labels.add(times[i]+weather.get(i));
this.invalidate();
由于需要动态添加数据,也就是温度,这里我设置了6个时段的温度,每个时段三个小时。在setChartDataSet方法中添加了参数,dataSeries1.getLinePaint().setStrokeWidth(3);设置了绘制曲线的线宽度,dataSeries1.setLineStyle(XEnum.LineStyle.DASH)设置了曲线的类型。setChartLabels(List&String& weather)设置了横轴坐标表示什么意思,在这里表示时段和天气状态。
第四个是图批注
public void setChartAnchor(List&String& temps){
//激活点击监听
chart.ActiveListenItemClick();
//为了让触发更灵敏,可以扩大5px的点击监听范围
chart.extPointClickRange(5);
chart.showClikedFocus();
List&AnchorDataPoint& mAnchorSet = new ArrayList&AnchorDataPoint&();
AnchorDataPoint an2 = new AnchorDataPoint(0,0,XEnum.AnchorStyle.TOBOTTOM);
an2.setBgColor(Color.WHITE);
an2.setLineWidth(15);
an2.setLineStyle(XEnum.LineStyle.DASH);
an2.setTextColor(Color.WHITE);
an2.setTextSize(55);
an2.setAnchor(temps.get(0));
AnchorDataPoint an3 = new AnchorDataPoint(0,1,XEnum.AnchorStyle.TOBOTTOM);
an3.setBgColor(Color.WHITE);
an3.setLineStyle(XEnum.LineStyle.DASH);
an3.setTextColor(Color.WHITE);
an3.setTextSize(55);
an3.setAnchor(temps.get(1));
//从点到底的标识线
//从点到底的标识线
AnchorDataPoint an4 = new AnchorDataPoint(0,2,XEnum.AnchorStyle.TOBOTTOM);
an4.setBgColor(Color.WHITE);
an4.setLineWidth(15);
an4.setLineStyle(XEnum.LineStyle.DASH);
an4.setTextColor(Color.WHITE);
an4.setTextSize(55);
an4.setAnchor(temps.get(2));
AnchorDataPoint an5 = new AnchorDataPoint(0,3,XEnum.AnchorStyle.TOBOTTOM);
an5.setBgColor(Color.WHITE);
an5.setLineWidth(15);
an5.setLineStyle(XEnum.LineStyle.DASH);
an5.setTextColor(Color.WHITE);
an5.setTextSize(55);
an5.setAnchor(temps.get(3));
AnchorDataPoint an6 = new AnchorDataPoint(0,4,XEnum.AnchorStyle.TOBOTTOM);
an6.setBgColor(Color.WHITE);
an6.setLineWidth(15);
an6.setLineStyle(XEnum.LineStyle.DASH);
an6.setTextColor(Color.WHITE);
an6.setTextSize(55);
an6.setAnchor(temps.get(4));
AnchorDataPoint an7 = new AnchorDataPoint(0,5,XEnum.AnchorStyle.TOBOTTOM);
an7.setBgColor(Color.WHITE);
an7.setLineWidth(15);
an7.setLineStyle(XEnum.LineStyle.DASH);
an7.setTextColor(Color.WHITE);
an7.setTextSize(55);
an7.setAnchor(temps.get(5));
mAnchorSet.add(an2);
mAnchorSet.add(an3);
mAnchorSet.add(an4);
mAnchorSet.add(an5);
mAnchorSet.add(an6);
mAnchorSet.add(an7);
chart.setAnchorDataPoint(mAnchorSet);
this.invalidate();
an2.setBgColor(Color.WHITE);
an2.setLineWidth(15);
an2.setLineStyle(XEnum.LineStyle.DASH);
an2.setTextColor(Color.WHITE);
an2.setTextSize(55);
an2.setAnchor(temps.get(0));
上面第一行依然是设置背景色为白色,第二行是批注线的宽度,第三行是设置批注线为虚线,第四、五行设置了批注文字的颜色和大小,第六行则是将批注文字绑定到an2上。
附上完整代码
package com.example.springweather.
import java.util.ArrayL
import java.util.LinkedL
import java.util.L
import org.xclcharts.chart.PointD;
import org.xclcharts.chart.SplineC
import org.xclcharts.chart.SplineD
import org.xclcharts.common.DensityU
import org.xclcharts.renderer.XE
import org.xclcharts.renderer.info.AnchorDataP
import org.xclcharts.renderer.plot.PlotG
import org.xclcharts.view.ChartV
import org.xclcharts.view.GraphicalV
import com.example.springweather.R;
import android.content.C
import android.graphics.C
import android.graphics.C
import android.graphics.P
import android.util.AttributeS
import android.util.L
public class SplineChartView extends GraphicalView {
private SplineChart chart = new SplineChart();
//分类轴标签集合
private LinkedList labels = new LinkedList();
private LinkedList chartData = new LinkedList();
Paint pToolTip = new Paint(Paint.ANTI_ALIAS_FLAG);
public SplineChartView(Context context) {
super(context);
// TODO Auto-generated constructor stub
initView();
public SplineChartView(Context context, AttributeSet attrs){
super(context, attrs);
initView();
public SplineChartView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initView();
public void refreshChart() {
super.refreshChart();
labels.clear();
chartData.clear();
private void initView()
List&String& weather=new ArrayList&String&();
for(int i=0;i&6;i++){
weather.add("晴");
List&String& temps=new ArrayList&String&();
for(int i=0;i&6;i++){
temps.add("1");
setChartLabels(weather);
setChartDataSet(temps);
setChartAnchor(temps);
chartRender();
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
//图所占范围大小
chart.setChartRange(w,h);
protected int[] getBarLnDefaultSpadding()
int [] ltrb = new int[4];
ltrb[0] = DensityUtil.dip2px(getContext(), 0); //left
ltrb[1] = DensityUtil.dip2px(getContext(), 0); //top
ltrb[2] = DensityUtil.dip2px(getContext(), 0); //right
ltrb[3] = DensityUtil.dip2px(getContext(), 30); //bottom
private void chartRender()
//设置绘图区默认缩进px值,留置空间显示Axis,Axistitle....
int [] ltrb = getBarLnDefaultSpadding();
chart.setPadding(ltrb[0] + DensityUtil.dip2px(this.getContext(), 20), ltrb[1],
ltrb[2]+DensityUtil.dip2px(this.getContext(), 30), ltrb[3]);
//显示边框
chart.showRoundBorder();
chart.setCategories(labels);
chart.setDataSource(chartData);
chart.setCustomLines(mCustomLineDataset);
//数据轴最大值
chart.getDataAxis().setAxisMax(40);
chart.getDataAxis().setAxisMin(-40);
//数据轴刻度间隔
chart.getDataAxis().setAxisSteps(2);
//标签轴最大值
chart.setCategoryAxisMax(5);
//标签轴最小值
chart.setCategoryAxisMin(0);
//背景网格
PlotGrid plot = chart.getPlotGrid();
plot.hideHorizontalLines();
plot.hideVerticalLines();
chart.getPlotArea().setBackgroundColor(true, Color.GRAY);
chart.getCategoryAxis().getAxisPaint().setColor(Color.WHITE);
chart.getCategoryAxis().getAxisPaint().setTextSize(6);
chart.getCategoryAxis().hideTickMarks();
chart.getCategoryAxis().getTickLabelPaint().setColor(Color.WHITE);
chart.getCategoryAxis().getTickLabelPaint().setFakeBoldText(true);
chart.getCategoryAxis().setTickLabelMargin(25);
chart.getCategoryAxis().getTickLabelPaint().setTextSize(25);
//不使用精确计算,忽略Java计算误差,提高性能
chart.disableHighPrecision();
chart.disablePanMode();
chart.hideBorder();
chart.getPlotLegend().hide();
chart.getDataAxis().hide();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("tag", e.toString());
public void setChartDataSet(List&String& temps)
//线1的数据集
List&PointD& linePoint1 = new ArrayList&PointD&();
linePoint1.add(new PointD(0d, Double.parseDouble(temps.get(0))));
linePoint1.add(new PointD(1d, Double.parseDouble(temps.get(1))));
linePoint1.add(new PointD(2d, Double.parseDouble(temps.get(2))));
linePoint1.add(new PointD(3d, Double.parseDouble(temps.get(3))));
linePoint1.add(new PointD(4d, Double.parseDouble(temps.get(4))));
linePoint1.add(new PointD(5d, Double.parseDouble(temps.get(5))));
SplineData dataSeries1 = new SplineData("Go",linePoint1,
Color.WHITE );
//把线弄细点
dataSeries1.getLinePaint().setStrokeWidth(3);
dataSeries1.setLineStyle(XEnum.LineStyle.DASH);
dataSeries1.setLabelVisible(false);
dataSeries1.setDotStyle(XEnum.DotStyle.RING);
dataSeries1.getDotPaint().setColor(getResources().getColor(R.color.white));
dataSeries1.getPlotLine().getPlotDot().setRingInnerColor(getResources().getColor(R.color.grey));
chartData.add(dataSeries1);
this.invalidate();
public void setChartLabels(List&String& weather){
String[] times={"20:00\n","23:00\n","2:00\n","5:00\n","8:00\n","11:00\n"};
for(int i=0;i&weather.size();i++){
labels.add(times[i]+weather.get(i));
this.invalidate();
public void setChartAnchor(List&String& temps){
//激活点击监听
chart.ActiveListenItemClick();
//为了让触发更灵敏,可以扩大5px的点击监听范围
chart.extPointClickRange(5);
chart.showClikedFocus();
List&AnchorDataPoint& mAnchorSet = new ArrayList&AnchorDataPoint&();
AnchorDataPoint an2 = new AnchorDataPoint(0,0,XEnum.AnchorStyle.TOBOTTOM);
an2.setBgColor(Color.WHITE);
an2.setLineWidth(15);
an2.setLineStyle(XEnum.LineStyle.DASH);
an2.setTextColor(Color.WHITE);
an2.setTextSize(55);
an2.setAnchor(temps.get(0));
AnchorDataPoint an3 = new AnchorDataPoint(0,1,XEnum.AnchorStyle.TOBOTTOM);
an3.setBgColor(Color.WHITE);
an3.setLineStyle(XEnum.LineStyle.DASH);
an3.setTextColor(Color.WHITE);
an3.setTextSize(55);
an3.setAnchor(temps.get(1));
//从点到底的标识线
//从点到底的标识线
AnchorDataPoint an4 = new AnchorDataPoint(0,2,XEnum.AnchorStyle.TOBOTTOM);
an4.setBgColor(Color.WHITE);
an4.setLineWidth(15);
an4.setLineStyle(XEnum.LineStyle.DASH);
an4.setTextColor(Color.WHITE);
an4.setTextSize(55);
an4.setAnchor(temps.get(2));
AnchorDataPoint an5 = new AnchorDataPoint(0,3,XEnum.AnchorStyle.TOBOTTOM);
an5.setBgColor(Color.WHITE);
an5.setLineWidth(15);
an5.setLineStyle(XEnum.LineStyle.DASH);
an5.setTextColor(Color.WHITE);
an5.setTextSize(55);
an5.setAnchor(temps.get(3));
AnchorDataPoint an6 = new AnchorDataPoint(0,4,XEnum.AnchorStyle.TOBOTTOM);
an6.setBgColor(Color.WHITE);
an6.setLineWidth(15);
an6.setLineStyle(XEnum.LineStyle.DASH);
an6.setTextColor(Color.WHITE);
an6.setTextSize(55);
an6.setAnchor(temps.get(4));
AnchorDataPoint an7 = new AnchorDataPoint(0,5,XEnum.AnchorStyle.TOBOTTOM);
an7.setBgColor(Color.WHITE);
an7.setLineWidth(15);
an7.setLineStyle(XEnum.LineStyle.DASH);
an7.setTextColor(Color.WHITE);
an7.setTextSize(55);
an7.setAnchor(temps.get(5));
mAnchorSet.add(an2);
mAnchorSet.add(an3);
mAnchorSet.add(an4);
mAnchorSet.add(an5);
mAnchorSet.add(an6);
mAnchorSet.add(an7);
chart.setAnchorDataPoint(mAnchorSet);
this.invalidate();
public void render(Canvas canvas) {
canvas.drawColor(Color.GRAY);
chart.render(canvas);
} catch (Exception e){
Log.e("tag", e.toString());
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 经纬度查询海拔高度 的文章

 

随机推荐