丹东淘宝做网站上海旅游必去景点推荐

web/2025/10/5 4:16:34/文章来源:
丹东淘宝做网站,上海旅游必去景点推荐,团建活动策划,网络优化网站建设接触了百度地图开发平台半个月了#xff0c;这2天试着模仿了微信给好友发送位置功能#xff0c;对百度地图的操作能力又上了一个台阶我在实现这个功能的时候#xff0c;遇到一些困难#xff0c;可能也是别人将会遇到的困难#xff0c;特在此列出1、在微信发送功能中#…接触了百度地图开发平台半个月了这2天试着模仿了微信给好友发送位置功能对百度地图的操作能力又上了一个台阶我在实现这个功能的时候遇到一些困难可能也是别人将会遇到的困难特在此列出1、在微信发送功能中不管用户如何拖拽地图总有个覆盖物固定了MapView中央怎么实现其实这很容易实现只要MapView的布局文件中将一个ImageView覆盖在MapView的中央就能够实现不管用户如何拖拽地图覆盖物(ImageView)总固定总MapView中央2、如何获取MapView中央的地理坐标也即是屏幕覆盖物处的坐标要获取MapView中央的地理坐标首先先获取覆盖物在屏幕上的物理坐标这里得区别一下地理坐标(经纬度)和物理坐标(xy轴)可以通过来获取物理坐标这个物理坐标是不变的而物理坐标对应的地理坐标却是随着用户拖拽地图而改变所以当我们需要地理坐标时可以通过currentLatLng mBaiduMap.getProjection().fromScreenLocation(mCenterPoint);获取。3、如何获取该地理坐标周围的所有poi信息(也就是周围建筑物的信息)而不只是某个类型的兴趣点为了实现这个功能真是费了我好大劲因为我之前一直以为用周边搜索实现的有人提示我可以通过循环轴线搜索实现不同关键字搜索但这样子确实很难实现跟微信那样的效果。通过查看API发现可以通过反地理编码解决这个问题至于什么事反地理编码可以到百度地图官网了解通过调用它可以返回一个该地理坐标附近建筑信息的一个列表4、当用户拖拽地图如何让列表更新到目前中心地理位置的周边信息这个困难其实也不难实现只是重写mBaiduMap.setOnMapTouchListener(touchListener);触摸事件在触摸监听器的回调函数中将MapView中央的物理坐标转换成对应的地理坐标再通过反地理编码获取周边信息道理同问题35、当点击listview某一项时如何将项地理位置显示在MapView也就是屏幕中央很简单通过listview的适配器获取item的位置信息包括经纬度然后用动画跳转到屏幕中央位置即可。我认为上面5个问题是实现这个功能的关键所在下面是效果图上面是一个MapVIew覆盖物固定在其中央地图左下角的白色正方形是回到定位点的按钮因为没找到好看的图片就留着空白了下面是一个listView显示地图指示地点周围的一些位置信息贴一下实现该功能的核心代码Activity类package com.vr.souhuodong.UI.Sou;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.graphics.Point;import android.net.Uri;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ImageView;import android.widget.ListView;import android.widget.ProgressBar;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BaiduMap.OnMapTouchListener;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.BitmapDescriptorFactory;import com.baidu.mapapi.map.MapStatusUpdate;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MarkerOptions;import com.baidu.mapapi.map.MyLocationConfiguration;import com.baidu.mapapi.map.MyLocationConfiguration.LocationMode;import com.baidu.mapapi.map.MyLocationData;import com.baidu.mapapi.map.OverlayOptions;import com.baidu.mapapi.model.LatLng;import com.baidu.mapapi.search.core.PoiInfo;import com.baidu.mapapi.search.core.SearchResult;import com.baidu.mapapi.search.geocode.GeoCodeResult;import com.baidu.mapapi.search.geocode.GeoCoder;import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption;import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;import com.vr.souhuodong.R;import com.vr.souhuodong.UI.Adapter.PlaceListAdapter;public class ChoosePlaceActivity extends Activity {MapView mMapView;BaiduMap mBaiduMap;ProgressBar mLoadBar;ImageView mSelectImg;// 定位LocationClient mLocationClient null;MyBDLocationListner mListner null;BitmapDescriptor mCurrentMarker null;// 当前经纬度double mLantitude;double mLongtitude;LatLng mLoactionLatLng;// 设置第一次定位标志boolean isFirstLoc true;// MapView中央对于的屏幕坐标Point mCenterPoint null;// 地理编码GeoCoder mGeoCoder null;// 位置列表ListView mListView;PlaceListAdapter mAdapter;List mInfoList;PoiInfo mCurentInfo;Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_chooseplace);initView();}/*** 初始化界面*/private void initView() {// TODO Auto-generated method stub// 初始化地图mMapView (MapView) findViewById(R.id.chooseplace_bmapView);mMapView.showZoomControls(false);mBaiduMap mMapView.getMap();MapStatusUpdate msu MapStatusUpdateFactory.zoomTo(17.0f);mBaiduMap.setMapStatus(msu);mBaiduMap.setOnMapTouchListener(touchListener);// 初始化POI信息列表mInfoList new ArrayList();// 初始化当前MapView中心屏幕坐标初始化当前地理坐标mCenterPoint mBaiduMap.getMapStatus().targetScreen;mLoactionLatLng mBaiduMap.getMapStatus().target;// 定位mBaiduMap.setMyLocationEnabled(true);mLocationClient new LocationClient(this);mListner new MyBDLocationListner();mLocationClient.registerLocationListener(mListner);LocationClientOption option new LocationClientOption();option.setOpenGps(true);// 打开gpsoption.setCoorType(bd09ll); // 设置坐标类型option.setScanSpan(1000);mLocationClient.setLocOption(option);mLocationClient.start();// 地理编码mGeoCoder GeoCoder.newInstance();mGeoCoder.setOnGetGeoCodeResultListener(GeoListener);// 周边位置列表mListView (ListView) findViewById(R.id.place_list);mLoadBar (ProgressBar) findViewById(R.id.place_progressBar);mListView.setOnItemClickListener(itemClickListener);mAdapter new PlaceListAdapter(getLayoutInflater(), mInfoList);mListView.setAdapter(mAdapter);mSelectImg new ImageView(this);}public void turnBack(View view) {// 实现动画跳转MapStatusUpdate u MapStatusUpdateFactory.newLatLng(mLoactionLatLng);mBaiduMap.animateMapStatus(u);mBaiduMap.clear();// 发起反地理编码检索mGeoCoder.reverseGeoCode((new ReverseGeoCodeOption()).location(mLoactionLatLng));}Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();mLocationClient.stop();mGeoCoder.destroy();}// 定位监听器private class MyBDLocationListner implements BDLocationListener {Overridepublic void onReceiveLocation(BDLocation location) {// TODO Auto-generated method stub// map view 销毁后不在处理新接收的位置if (location null || mMapView null)return;MyLocationData data new MyLocationData.Builder()//// .direction(mCurrentX)//.accuracy(location.getRadius())//.latitude(location.getLatitude())//.longitude(location.getLongitude())//.build();mBaiduMap.setMyLocationData(data);// 设置自定义图标MyLocationConfiguration config new MyLocationConfiguration(LocationMode.NORMAL, true, null);mBaiduMap.setMyLocationConfigeration(config);mLantitude location.getLatitude();mLongtitude location.getLongitude();LatLng currentLatLng new LatLng(mLantitude, mLongtitude);mLoactionLatLng new LatLng(mLantitude, mLongtitude);// 是否第一次定位if (isFirstLoc) {isFirstLoc false;// 实现动画跳转MapStatusUpdate u MapStatusUpdateFactory.newLatLng(currentLatLng);mBaiduMap.animateMapStatus(u);mGeoCoder.reverseGeoCode((new ReverseGeoCodeOption()).location(currentLatLng));return;}}}// 地理编码监听器OnGetGeoCoderResultListener GeoListener new OnGetGeoCoderResultListener() {public void onGetGeoCodeResult(GeoCodeResult result) {if (result null || result.error ! SearchResult.ERRORNO.NO_ERROR) {// 没有检索到结果}// 获取地理编码结果}Overridepublic void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {if (result null || result.error ! SearchResult.ERRORNO.NO_ERROR) {// 没有找到检索结果}// 获取反向地理编码结果else {// 当前位置信息mCurentInfo new PoiInfo();mCurentInfo.address result.getAddress();mCurentInfo.location result.getLocation();mCurentInfo.name [位置];mInfoList.clear();mInfoList.add(mCurentInfo);// 将周边信息加入表if (result.getPoiList() ! null) {mInfoList.addAll(result.getPoiList());}// 通知适配数据已改变mAdapter.notifyDataSetChanged();mLoadBar.setVisibility(View.GONE);}}};// 地图触摸事件监听器OnMapTouchListener touchListener new OnMapTouchListener() {Overridepublic void onTouch(MotionEvent event) {// TODO Auto-generated method stubif (event.getAction() MotionEvent.ACTION_UP) {if (mCenterPoint null) {return;}// 获取当前MapView中心屏幕坐标对应的地理坐标LatLng currentLatLng;currentLatLng mBaiduMap.getProjection().fromScreenLocation(mCenterPoint);System.out.println(---- mCenterPoint.x);System.out.println(---- currentLatLng.latitude);// 发起反地理编码检索mGeoCoder.reverseGeoCode((new ReverseGeoCodeOption()).location(currentLatLng));mLoadBar.setVisibility(View.VISIBLE);}}};// listView选项点击事件监听器OnItemClickListener itemClickListener new OnItemClickListener() {Overridepublic void onItemClick(AdapterView parent, View view, int position,long id) {// TODO Auto-generated method stub// 通知是适配器第position个item被选择了mAdapter.setNotifyTip(position);BitmapDescriptor mSelectIco BitmapDescriptorFactory.fromResource(R.drawable.icon_geo);mBaiduMap.clear();PoiInfo info (PoiInfo) mAdapter.getItem(position);LatLng la info.location;// 动画跳转MapStatusUpdate u MapStatusUpdateFactory.newLatLng(la);mBaiduMap.animateMapStatus(u);// 添加覆盖物OverlayOptions ooA new MarkerOptions().position(la).icon(mSelectIco).anchor(0.5f, 0.5f);mBaiduMap.addOverlay(ooA);// 选中项打勾mSelectImg.setBackgroundResource(R.drawable.greywhite);mSelectImg (ImageView) view.findViewById(R.id.place_select);mSelectImg.setBackgroundResource(R.drawable.ic_select);// Uri mUri Uri.parse(geo:39.940409,116.355257);// Intent mIntent new Intent(Intent.ACTION_VIEW,mUri);// startActivity(mIntent);}};}自定义的listView适配器package com.vr.souhuodong.UI.Adapter;import java.util.List;import android.R.integer;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.baidu.mapapi.search.core.PoiInfo;import com.vr.souhuodong.R;public class PlaceListAdapter extends BaseAdapter {List mList;LayoutInflater mInflater;int notifyTip ;private class MyViewHolder {TextView placeName;TextView placeAddree;ImageView placeSelected;}public PlaceListAdapter(LayoutInflater mInflater , List mList) {super();this.mList mList;this.mInflater mInflater;notifyTip -1 ;}/*** 设置第几个item被选择* param notifyTip*/public void setNotifyTip(int notifyTip) {this.notifyTip notifyTip;}Overridepublic int getCount() {// TODO Auto-generated method stubreturn mList.size();}Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn mList.get(position);}Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubMyViewHolder holder;if (convertView null) {System.out.println(----aa-);convertView mInflater.inflate(com.vr.souhuodong.R.layout.listitem_place, parent, false);holder new MyViewHolder();holder.placeName (TextView) convertView.findViewById(com.vr.souhuodong.R.id.place_name);holder.placeAddree (TextView) convertView.findViewById(com.vr.souhuodong.R.id.place_adress);holder.placeSelected (ImageView) convertView.findViewById(com.vr.souhuodong.R.id.place_select);holder.placeName.setText(mList.get(position).name);holder.placeAddree.setText(mList.get(position).address);holder.placeSelected.setBackgroundResource(R.drawable.greywhite);convertView.setTag(holder);} else {holder (MyViewHolder) convertView.getTag();}holder.placeName.setText(mList.get(position).name);holder.placeAddree.setText(mList.get(position).address);//根据重新加载的时候第position条item是否是当前所选择的选择加载不同的图片if(notifyTip position ){holder.placeSelected.setBackgroundResource(R.drawable.ic_select);}else {holder.placeSelected.setBackgroundResource(R.drawable.greywhite);}return convertView;}// class MyItemClickListener implements OnClickListener {//// ImageView mImg;// public MyItemClickListener(ImageView mImg) {// this.mImg mImg;// }// Override// public void onClick(View v) {// // TODO Auto-generated method stub// mImg.setBackgroundResource(R.drawable.ic_select);// }//// }}总结以上所述是小编给大家介绍的利用百度地图Android sdk高仿微信发送位置功能希望对大家有所帮助如果大家有任何疑问请给我留言小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

公司网站设计策划案杭州正规企业网站建设

毫不负责任的说,你和数据科学家最大的鸿沟,就差一个SQL语言:)入门后,后面的事情就简单了为了帮大家尽快入门Hive SQL、学会提数和分析,实现在大数据领域大干一场的愿望,帮你准备好了数据,准备好…

怀化市优化办电话seo是什么意思职业

spring防止爬虫Spring Security可以为您做很多事情。 帐户被封锁,密码盐。 但是蛮力阻断剂呢? 那是你必须自己做的。 幸运的是,Spring是一个非常灵活的框架,因此对其进行配置并不是什么大问题。 让我向您展示一些如何针对Grai…

淄博网站外包网站分为哪些结构

题目描述 给定一段“密文”字符串 s,其中字符都是经过“密码本”映射的,现需要将“密文”解密并输出。 映射的规则(a ~ i)分别用(1 ~ 9)表示;(j ~ z)分别用("10*" ~ "26*")表示。 约束:映射始终唯一。 输入描述 “密文”字符串 输出描述 …

厦门网站制作开发收费如何做kindle电子书下载网站

目录 1.监测的背景及意义 1.1监测背景 1.2监测意义 2.系统介绍及特点 2.1系统介绍 2.2系统特点 3.系统设计 3.1监测内容 3.2总体介绍 3.3详细设计 3.3.1垂直度监测 3.3.2水平位移、沉降监测 3.3.3环境监测 3.3.4应力应变监测 3.3.5裂缝监测 3.3.6云平台综合在线…

个人博客网站开发的背景上海软件定制开发

在Linux系统下,这个虚拟内存就被叫做swap。Linux swap分区是有限制的。在安装操作系统的时候,安装向导会提示用户需要创建多少的SWaP空间。通常情况下,SWaP比较合适的大小为物理内存的1-2倍。1. 早期的linux对虚拟内存的限制linux2.2以前的内…

外贸建站哪家公司好东莞整站优化推广公司找火速

点击蓝字关注我们我相信很多人都遇到选择的事情&#xff0c;比较正常的就是&#xff0c;我拿了两个offer要如何选择。用下面这段C代码挺好的&#xff0c;你可以自己加上自己喜欢的判断。#include<stdio.h> #include<stdlib.h> #include<time.h>int main() {i…

淄博网站建设培训班中国建设通网站

目录 1.概述2.结构3.实现3.1.子系统类3.2.外观类3.3.测试 4.优缺点5.使用场景6.源码解析 1.概述 &#xff08;1&#xff09;有些人可能炒过股票&#xff0c;但其实大部分人都不太懂&#xff0c;这种没有足够了解证券知识的情况下做股票是很容易亏钱的&#xff0c;刚开始炒股肯…

seo网站快速ps网站页面设计教程

文章目录 RocketMQ可视化工具1.github上下载2.修改参数3.运行4.打包5.出错6.解决7.重试8.再解决9.很奇怪运行没错&#xff0c;但是测试错啦10.不想深究&#xff0c;直接跳过测试11.展示成功 RocketMQ可视化工具 1.github上下载 下载地址 https://github.com/apache/rocketmq-…

各大搜索引擎网站登录入口学校网站建设有限公司

import React, { useState } from react;// 定义一个简单的函数式组件 function Counter() {// 使用 useState hook 来创建一个状态变量 count&#xff0c;并提供修改该状态的函数 setCountconst [count, setCount] useState(0);// 在点击按钮时增加计数器的值const increment…

乡镇可以做门户网站外贸推广网站哪家

Java提供了不同的接口&#xff0c;使您可以修改TestNG行为。 这些接口在Selenium WebDriver中进一步称为TestNG侦听器。 TestNG Listeners还允许您根据项目要求自定义测试日志或报告。 Selenium WebDriver中的TestNG侦听器是侦听某些事件并跟踪测试执行情况的模块&#xff0c;…

网站开发技术一般需要什么语言小说排行榜2020前十名

题目传送门&#xff1a;洛谷P3835。 题意简述&#xff1a; 题面说的很清楚了。 题解&#xff1a; 考虑建立一棵每个节点都表示一个版本的树。 以初始版本 \(0\) 为根。对于第 \(i\) 个操作&#xff0c;从 \(v_i\) 向 \(i\) 连一条边&#xff0c;而边权则是 \(opt_i\) 和 \(x_i\…

大型建站公司建设中网站如何上传图片

2019独角兽企业重金招聘Python工程师标准>>> 微服务架构技能 博客分类&#xff1a; 架构 &#xff08;StuQ 微服务技能图谱&#xff09; 2课程简介 本课程分为基础篇和高级篇两部分&#xff0c;旨在通过完整的案例&#xff0c;呈现微服务的开发、测试、构建、部署、…

网站建设开题报告设计扬州建设工程交易网

写在前面 好久没有写博客了, 中间忙了一堆杂七杂八的事情...工作, 情感, 未来, 人生... 下面是正文 一直要写一个视频播放器, 好练练手. 这个app, 从年前写到现在, 终于算弄出了样子, 0.0版本. (不得不说, googleVPN值得拥有, android developer网站, android sdk samples, sta…

石材做网站细节云南网上办事大厅官网

目录 含义 七种事务传播机制 1.REQUIRED&#xff08;默认&#xff09; 2.REQUIRES_NEW 3.SUPPORTS 4.NOT_SUPPORTED 5.MANDATORY 6.NEVER 7.NESTED 含义 Spring事务的传播机制是指在多个事务方法相互调用时&#xff0c;如何处理这些事务的传播行为。对应七种事务传播行为…

建一个公司网站多少钱网站建设+人员+年终总结

项目场景&#xff1a; 在使用Stable diffusion webui时&#xff0c;使用扩展列表出现错误 问题描述 点击loadfrom后&#xff0c;出现加载扩展列表报错 原因分析&#xff1a; 下载的扩展的时候&#xff0c;都是github 的url&#xff0c;需要科学上网&#xff0c;如果不能科学…

蒙古文网站建设西红柿怎么做网站

损失函数和目标函数定义 损失函数是用于衡量模型在训练过程中预测结果与实际结果之间的差异的函数。它通过计算模型的预测值与实际值之间的距离或差异来 quantitatively 表示模型的性能好坏。损失函数通常被用作优化算法(如梯度下降)的目标函数,通过最小化损失函数来调整模…

公司网站建设怎么wordpress 短代码 if is single

一、概述 一个JVM实例只存在一个堆内存&#xff0c;堆内存的大小是可以手动调节的。类加载器读取了类文件后&#xff0c;需要把类、方法、常变量放到堆内存中&#xff0c;保存所有引用类型的真实信息&#xff0c;以方便执行器执行&#xff0c;堆内存分为三个部分&#xff0c;即…

网站ftp用户名和密码wordpress主题文章页

LLM 是利用深度学习和大数据训练的人工智能系统&#xff0c;专门设计来理解、生成和回应自然语言。这些模型通过分析大量的文本数据来学习语言的结构和用法&#xff0c;从而能够执行各种语言相关任务。以 GPT 系列为代表&#xff0c;LLM 以其在自然语言处理领域的卓越表现&…

山西龙采网站建设合同编程培训加盟

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

wordpress适合电影网站的模板沈阳企业建站系统模板

HTRANS、HSIZE和HBURST共同决定下一次数据传输的地址。 HTRANS[1:0]定义传输类型 HTRANS[1:0]主机传输状态描述00IDLE空闲表示没有进行数据传输&#xff0c;默认状态。主设备虽然可能已经占用了总线&#xff0c;但是还没有开始传输数据。从设备需要返回OKAY响应01BUSY忙主设备…