-
2017-09-08 17:56:48
self.mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.frame))]; self.mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; self.mapView.delegate = self; [self.view addSubview:self.mapView]; self.mapView.userTrackingMode = MAUserTrackingModeFollowWithHeading;(核心) [self.mapView setCompassImage:[UIImage imageNamed:@"map_address_compass@2x.png"]];
或者
//地图懒加载 - (MAMapView *)mapView{ if (!_mapView) { _mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, kH_SegmentOfCustomeHeight, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.frame) - kH_SegmentOfCustomeHeight)]; _mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; _mapView.delegate = self; _mapView.showsUserLocation = YES; //YES 为打开定位,NO为关闭定位 // _mapView.desiredAccuracy = kCLLocationAccuracyKilometer; // _mapView.distanceFilter = kCLLocationAccuracyKilometer; // _mapView.headingFilter = 90; _mapView.zoomLevel = 14; //自定义定位经度圈样式 _mapView.customizeUserLocationAccuracyCircleRepresentation = YES; //地图跟踪模式 // _mapView.userTrackingMode = MAUserTrackingModeFollow; _mapView.userTrackingMode = MAUserTrackingModeFollowWithHeading; _mapView.showsCompass = YES; [_mapView setCompassImage:[UIImage imageNamed:@"map_address_compass@2x.png"]]; //后台定位 _mapView.pausesLocationUpdatesAutomatically = NO; _mapView.allowsBackgroundLocationUpdates = NO;//iOS9以上系统必须配置 } return _mapView; }
更多相关内容 -
关于安卓百度地图自定义指针旋转角度问题(第一次写博客)
2016-10-31 17:46:19首先声明一下,这是我第一次写博客,有很多东西不清楚 ,还请见谅。 昨天周末的时候,帮同事做一个安卓app里面的百度地图的东西。其实就是类似百度导航的东西,有一个箭头,可以转动。他的需求时,通过服务器传的...首先声明一下,这是我第一次写博客,有很多东西不清楚 ,还请见谅。
昨天周末的时候,帮同事做一个安卓app里面的百度地图的东西。其实就是类似百度导航的东西,有一个箭头,可以转动。他的需求时,通过服务器传的参数来动态改变。我之前也没做过app,更没做过app百度地图。在网上找了很多都没有搞定,最后自己看来一个api,才搞定的。下面把demo附上去,希望能对一些人有所帮助,同时自己也能有所积累。
需要的包我就不做解释了,大家应该比我更加清楚!
Activity代码:
import android.app.Activity;
import android.os.Bundle;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatus;
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.MyLocationData;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
public class BaiDuMap extends Activity{
private MapView mMapView = null;
private BaiduMap mBaiduMap = null;
MyLocationData.Builder builder = new MyLocationData.Builder();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.bmap);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
// 构造定位数据
//深圳中心点
LatLng point = new LatLng(22.549525, 114.063918);
BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.navigation);
//这里是按逆时针旋转的 这里是270度
OverlayOptions options = new MarkerOptions().icon(icon).position(point).rotate(270);
mBaiduMap.addOverlay(options);
MapStatus mMapStatus = new MapStatus.Builder()
.target(point)
.zoom(18)
.build();
//定义MapStatusUpdate对象,以便描述地图状态将要发生的变化
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
//改变地图状态
mBaiduMap.setMapStatus(mMapStatusUpdate);
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
}
-
Android 高德地图上自定义动画
2021-05-26 16:42:02高德提供了SmoothMoveMarkerAPI的调用,用于平滑移动,只需要给point点就好了还有animation的封装,对RotateAnimation,AlphaAnimation,ScaleAnimation,TranslateAnimation,都有...比如,在地图上画一个车,让车沿着...高德提供了SmoothMoveMarkerAPI的调用,用于平滑移动,只需要给point点就好了
还有animation的封装,对
RotateAnimation,AlphaAnimation,ScaleAnimation,TranslateAnimation,都有基本的操作,对其还有AnimationSet进行组合操作
但是,我们有时候对动画的要求有点多,不仅限于这些。
比如,在地图上画一个车,让车沿着轨迹移动,车头向着前进方向
如果只需要上面的要求,没有其他的。SmoothMoveMarker应该能满足你的要求。
所以,我们这里就不仅限于这些,我们与android提供的属性动画相结合操作。(别问我属性动画是什么,百度,google,bing去)。
ok,说了这么多。先看看效果图。
车辆行驶沿着轨迹,并且根据行驶速度进行加速减速。
emmmmm,因为数据都是我瞎弄得不是真实值,所以有点误差,拿到真实值后需要reset一下。
下面开始操作吧,整个地图基于高德地图
###添加高德地图的依赖
请百度百科
###绘制轨迹
我们使用方法addPolyline就ok
整个绘制代码
/**
* 添加轨迹线
*
* @param points
*/
private void addPolylineInPlayGround(Listpoints) {
Listlist = new ArrayList<>();
for (int i = 0; i < points.size(); i++) {
list.add(new LatLng(points.get(i).getLat(), points.get(i).getLon()));
}
ListcolorList = new ArrayList();
ListbitmapDescriptors = new ArrayList();
int[] colors = new int[]{Color.argb(255, 0, 255, 0), Color.argb(255, 255, 255, 0), Color.argb(255, 255, 0, 0)};
//用一个数组来存放纹理
ListtextureList = new ArrayList();
textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.custtexture));
ListtexIndexList = new ArrayList();
texIndexList.add(0);//对应上面的第0个纹理
texIndexList.add(1);
texIndexList.add(2);
Random random = new Random();
for (int i = 0; i < list.size(); i++) {
colorList.add(colors[random.nextInt(3)]);
bitmapDescriptors.add(textureList.get(0));
}
mPolyline = mAMap.addPolyline(new PolylineOptions().setCustomTexture(BitmapDescriptorFactory.fromResource(R.drawable.custtexture)) //setCustomTextureList(bitmapDescriptors)
.addAll(list)
.useGradient(true)
.width(18));
LatLngBounds.Builder builder = LatLngBounds.builder();
for (int i = 0; i < list.size() - 1; i++) {
builder.include(list.get(i));
} mAMap.animateCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 0));
ok,线我们添加进去了
这样操作的
//RxJava+Retrofit 了解一下,空了在贴
NetUtil.INSTANCE().create(new MySubscribe>() {
@Override
public void onNext(ListcarRoutes) {
//网络请求添加线
mList.addAll(carRoutes);
}
@Override
public void onComplete() {
addPolylineInPlayGround(mList);
}
}, id, true);
接着我们通过属性动画里的ValueAnimator设置我们的值如何变化
/**
* 动画效果
*/
public Animator setAnimation(final Marker marker, float duration) {
ValueAnimator animator;
Object[] objects = new Object[mList.size()];
for (int i = 0; i < objects.length; i++) {
objects[i] = mList.get(i);
}
animator = ValueAnimator.ofObject(new TypeEvaluator() {
@Override
public CarRoute evaluate(float fraction, CarRoute startValue, CarRoute endValue) {
double lat = startValue.getLat() + fraction * (endValue.getLat() - startValue.getLat());
double lon = startValue.getLon() + fraction * (endValue.getLon() - startValue.getLon());
//注意这里的speed没有用到,我懒得改了
return new CarRoute(lon, lat, speed, getAngle(startValue.getLatLng(), endValue.getLatLng()));
}
}, objects);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
CarRoute carRoute = (CarRoute) animation.getAnimatedValue();
marker.setMarkerOptions(marker.getOptions().position(carRoute.getLatLng()).rotateAngle((float) carRoute.getBearing()));
//默认无
//mAMap.moveCamera(CameraUpdateFactory.changeLatLng(carRoute.getLatLng()));
}
});
animator.setInterpolator(new SpeedInterpolator(mList, duration));
animator.setDuration((long) duration);
animator.start();
return animator;
}
比较正常的操作,接下来我们就可以看看我们效果
可以看到我们的marker点就在轨迹上平缓的移动,整体效果跟SmoothMoveMarker一样。
接着,车辆行驶过程中肯定有速度,有速度就有加速,减速,匀速。
那我们就可以根据这个来做一个加减速的行车动画,而不是全程匀速无聊。
所以这里我们就要用到插值器。关于插值器,可以百度,谷歌等看看用法,这里我们自定义自己的插值器。
public static class SpeedInterpolator implements TimeInterpolator {
private ListmSpeedList;
private double totalDistance;
SpeedInterpolator(ListspeedList, float duration) {
mSpeedList = speedList;
//真实距离
for (int i = 0; i < speedList.size() - 1; ++i) {
double k = (double) AMapUtils.calculateLineDistance(speedList.get(i).getLatLng(), speedList.get(i + 1).getLatLng());
this.totalDistance += k;
}
}
/**
* 完成度时间
*这里的input是系统计算返回的
* @param input 可看之为时间进行了多久
* 单位km/h 换算 m/s
* @return 可反映速度快慢的返回值
*/
@Override
public float getInterpolation(float input) {
}
}
大概样子是这个,接着我们需要在
getInterpolation() 里编写我们自己的逻辑
编写之前我们先画点图了解并思考我们如何操作
v-t 速度和时间
表示了v的变化,为了整个逻辑简洁,不考虑变加速,整个过程就是一个时间段内就是匀加速,匀减速或者匀速。所以可以看到6s内每1s,其加速度的值都是固定的
比如0-1 加速度为1
a-t 加速度和时间
啊,用excel画布来这图,将就看吧
s-t 路程和时间
好了三张图上完了。我们在了解一下fraction这个值
哪来的?
public CarRoute evaluate(float fraction, CarRoute startValue, CarRoute endValue)
这段话你忘了么。然后了解属性动画后知道这个值得范围是[0,1]
这个就可以理解为我们的完成度,完成了百分之多少我们的动画就该进行到哪了
那么这个值怎么来的?
就是插值器里return来的了
然后input这个值我们理解为系统返回的时间(系统按照duration比例转换的[0,1]时间)
ok,就是说 input可以理解为我们上图的t这个值。那么上面哪张图与完成最相似。没错,就是S-T图我们的路径与时间关系的图
在这里距离是9米,我们每行驶一段距离与总距离的比值就可以是我们返回的fraction这个值了。
接下来我们按照图来编写我们的公式。这里会有坑,请注意
首先回顾一下高中物理知识
匀速情况下
s=v*t
匀变速情况下
s=vt+at*t/2 a为加速度,为矢量值(问我矢量是什么的,棺材板压好了么)
然后这里有一个问题,速度是变化的如何知道哪一段是哪个速度呢?
所以我们加一个索引
int index = (int) (input * (mSpeedList.size() - 1));
if (index == mSpeedList.size() - 1) {
return 1;
}
float start = (float) (mSpeedList.get(index).getSpeed() / 3.6f);
ok,我们通过时间进行了多少判断出我们该取哪一个点的初始值
接下来进行计算
直接放代码吧
@Override
public float getInterpolation(float input) {
index = (int) (input * (mSpeedList.size() - 1));
if (index == mSpeedList.size() - 1) {
return 1;
}
float start = (float) (mSpeedList.get(index).getSpeed() / 3600 * 1000);
float end = (float) (mSpeedList.get(index + 1).getSpeed() / 3600 * 1000);
double a = (end - start) / t;//加速度
//通过一个temp指针得到现在的input的时候行进了多少距离
double c = input - temp;
temp = input;
//重新指向input的位置
s += v * c + a * c * c / 2;
v = (float) (v + a * c);//当前速度
//实际距离,真实距离 totalDistance
return (float) (s / (1181.0176983519816 * multiples));
}
来个手绘图描述一下上诉代码
不要介意
V0是我们temp指向的速度,V1是我们input指向的速度
v1 = v0 + a * t
这就是计算公式,同时根据v0==>>v1的时间变化
得出 > s = v0 * t + a * t * t / 2;
然后加上我们行走过的距离就能得到我们到input的时候走过的距离了。
末尾的1181.0176983519816是什么东西
是logcat打印出来的距离值,因为这只是我随便弄得值(才不会说是在高德上面一个一个点的),所以跟真实距离(totalDistance)有差距。
至于那个倍数,是针对于duration这个会翻倍的东东。(这个倍数请忽略,自我尝试才能知道最终结果)
ok,有什么疑问留下吧,欢迎大家一起探讨。
上面的插值器的代码有点问题(真的,不骗你们),我用另一种方式写了一下。需要的来这里
-
安卓开发笔记(十二)—— 基于百度地图SDK完成地图中心定位,marker转向,动态定位
2019-01-03 00:53:21地图 第十七周实验目的 接入百度地图API 掌握少量的百度地图API接口 二、实现内容 基于之前的应用,初始界面仍为摇一摇 跳转后的界面为百度地图 地图定位在目前的经纬度,需要可以动态改变 界面中心为...中山大学数据科学与计算机学院本科生实验报告
(2018年秋季学期)
第十七周任务
一、实验题目
地图
第十七周实验目的
- 接入百度地图API
- 掌握少量的百度地图API接口
二、实现内容
基于之前的应用,初始界面仍为摇一摇
跳转后的界面为百度地图
地图定位在目前的经纬度,需要可以动态改变
界面中心为箭头,指向是目前的朝向,可以利用上周代码得到的朝向,也需要动态改变
左下角是一个按钮,当移动地图时需要变为空心,可以点击,点击后变为实心同时回到定位到目前位置
当拖动地图时,左下角会变为空心
点击左下角按钮,回到目前位置
- 该项目属于选作项目
- 需要理解一定的百度地图API
- 基础内容是显示地图,定位到目前位置,显示目前朝向共计三项,其中后两项可以利用之前的代码
- 加分项即为左下角的按钮以及相应的事件监听处理。对流程还不清晰的可以查看demo
- 需要的图片资源在manual里
三、课堂实验结果
(1)实验截图
1.地图初始页面
2.改变经纬度
3.移动地图,左下方图标变化
4.点击左下方图标,显示回原位置
5.摇动手机,marker改变方向
(2)实验步骤以及关键代码
a.引入百度地图的资源包
网上教程一大把,这里也不再叙述。
主要步骤为
- 下载开发包
- 复制so文件至src/main/jniLibs目录
- 复制jar包至libs目录
- 增加sourceSets
- 增加依赖
- 添加密钥
- 添加权限
- 使用地图
b.添加地图到xml布局
这里的页面仅需要显示一个地图的组件加上自己的一张图片即可,后面通过点击这张图片来与地图进行交互。
<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> <ImageButton android:id="@+id/imaage_button" android:layout_width="80dp" android:layout_height="80dp" android:scaleType="fitXY" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:src="@drawable/centerdirection" />
C.根据经纬度显示地图,并设置marker
这里的经纬度利用的是上周的LocationManager所获得的地址,但是由于百度地图的api的地址计算并不与location的直接一致,故需要进行转换,这一点在百度的api手册也有说明。以下是设置我的当前位置信息,需要设置角度,经度,纬度。
//获取地图控件引用 BaiduMap mBaiduMap = mMapView.getMap(); mBaiduMap.setOnMapStatusChangeListener(onMapStatusChangeListener); //普通地图 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); mBaiduMap.setMyLocationEnabled(true); // 转换坐标 CoordinateConverter converter = new CoordinateConverter(); converter.from(CoordinateConverter.CoordType.GPS); converter.coord(new LatLng(loc.getLatitude(), loc.getLongitude())); LatLng desLatLng = converter.convert(); // LatLng就是当前的坐标 degree = 90.0f; mMapView.getMap().setMyLocationEnabled(true); MyLocationData data = new MyLocationData.Builder() .latitude(desLatLng.latitude) .longitude(desLatLng.longitude) .direction(degree).build(); mMapView.getMap().setMyLocationData(data);
然后,设置marker的图片与位置
Bitmap bitmap = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.pointer), 100, 100, true); BitmapDescriptor bitmapD = BitmapDescriptorFactory.fromBitmap(bitmap); MyLocationConfiguration config = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, bitmapD); mMapView.getMap().setMyLocationConfiguration(config);
设置地图居中显示
// 设置地图居中 MapStatus mapStatus = new MapStatus.Builder().target(desLatLng).build(); MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mapStatus); mMapView.getMap().setMapStatus(mapStatusUpdate);
这一点很关键,没有设置居中显示,则地图默认显示中心在首都,这一点会导致我的marker看不到,误以为程序出问题,且不符合要求。
d.判断手机转向时,改变marker的转向
这一点与上一周的指针旋转类似,传感器不变,但是需要做的是改变marker的角度,即重新设置direction。
MyLocationData data = new MyLocationData.Builder() .latitude(desLatLng.latitude) .longitude(desLatLng.longitude) .direction(degree).build();
里面的degree就是我通过之前传感器获取的转向角度。
e.判断位置改变时,改变地图和marker所处位置
与改变角度一样,只不过这次改变的是经纬度。同样经纬度也是通过上周传感器的改变监听函数中获取即可。
MyLocationData data = new MyLocationData.Builder() .latitude(desLatLng.latitude) .longitude(desLatLng.longitude) .direction(degree).build();
f.判断地图的改变状态,以此改变左下角的图片
这里利用的是百度地图的地图状态改变监听器。
我设置当状态改变完毕后,若当前状态与经纬度的状态不一致,则证明偏离了中心,所以改变图片的样式。同样,当点击图片,仅需返回到原来的状态即可,并将图片设置回实心。
// 设置imageButton的点击函数 imageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 转换坐标 CoordinateConverter converter = new CoordinateConverter(); converter.from(CoordinateConverter.CoordType.GPS); converter.coord(new LatLng(loc.getLatitude(), loc.getLongitude())); LatLng desLatLng = converter.convert(); // 设置地图居中 MapStatus mapStatus = new MapStatus.Builder().target(desLatLng).build(); MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mapStatus); mMapView.getMap().setMapStatus(mapStatusUpdate); // 更改图片 imageButton.setImageResource(R.drawable.centerdirection); } });
以下是百度地图的状态监听器:
// 地图改变的监听函数 onMapStatusChangeListener = new BaiduMap.OnMapStatusChangeListener() { /** * 手势操作地图,设置地图状态等操作导致地图状态开始改变。 * @param status 地图状态改变开始时的地图状态 */ public void onMapStatusChangeStart(MapStatus status){ } /** 因某种操作导致地图状态开始改变。 * @param status 地图状态改变开始时的地图状态 * @param reason表示地图状态改变的原因,取值有: * 1:用户手势触发导致的地图状态改变,比如双击、拖拽、滑动底图 * 2:SDK导致的地图状态改变, 比如点击缩放控件、指南针图标 * 3:开发者调用,导致的地图状态改变 */ public void onMapStatusChangeStart(MapStatus status, int reason){ } /** * 地图状态变化中 * @param status 当前地图状态 */ public void onMapStatusChange(MapStatus status){ } /** * 地图状态改变结束 * @param status 地图状态改变结束后的地图状态 */ public void onMapStatusChangeFinish(MapStatus status){ // 转换坐标 CoordinateConverter converter = new CoordinateConverter(); converter.from(CoordinateConverter.CoordType.GPS); converter.coord(new LatLng(loc.getLatitude(), loc.getLongitude())); LatLng desLatLng = converter.convert(); // 判断两个状态是否一致 MapStatus mapStatus = new MapStatus.Builder().target(desLatLng).build(); Log.i("change","map has changed"); if(!status.equals(mapStatus)){ imageButton.setImageResource(R.drawable.definelocation); } } };
在初始化地图的时候记得设置监听器即可。
mBaiduMap.setOnMapStatusChangeListener(onMapStatusChangeListener);
(3)实验遇到的困难以及解决思路
a.地图加载出来后,仅显示在首都,并未根据经纬度改变
这一点是由于我只设置了MyLocationData,并没有设置地图的Status导致的。地图的位置信息已经在经纬度了,但是并没有居中显示。
// 设置地图居中 MapStatus mapStatus = new MapStatus.Builder().target(desLatLng).build(); MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mapStatus); mMapView.getMap().setMapStatus(mapStatusUpdate);
四、实验思考及感想
这次的实验也是在之前传感器的基础上添加百度地图功能,传感器部分的功能可以继续使用,只是需要学习一些百度地图的SDK。个人感觉地图与传感器这两个功能在日常的android开发都是离不开的,而想用好别人的地图SDK就要先看懂官方的文档,这一点很重要。我在做实验过程一遇到缺少的功能或者函数,一般官方文档上也会有教程或者方法提供。
最后一次安卓作业也做完了,虽然要求是选做,但是趁着自己有时间空余还是完成一下吧。安卓的学习并没有因此而终止,反而是另一种学习的开始,到此我已经基本掌握android的开发知识,要趁着寒假时间也加强一下自己的水平,期待在安卓开发能有更远的发展。Fighting!
-
地图中指针随手机旋转而旋转
2014-10-20 21:14:00============问题描述============ 旋转手机的时候,指针会旋转,请问如何实现? ============解决方案1============ 我用的百度... -
百度地图自定义图标动画
2016-01-05 09:46:22先讲一下原来的思路,因为安卓有一个动画效果是可以从底部上升的,当时就想着只要实现动画效果,放在地图上就是了,后来发现百度地图好像不支持这种动画,自己提供的动画是需要一组图片组合的,总不能设置100个图片... -
百度地图Marker的定位和方向
2017-07-28 11:56:23原文: http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=83704 今天做百度地图需要在显示很多车辆的位置信息。并显示车辆的角度和行驶方向。 需要用到设置标注的方向。 资料不多,特此记录,备忘。 -
golandia:使用代码示例动手介绍Go
2021-03-27 19:08:38地图 范围 功能 多个返回值 可变函数 闭包 递归 指针 结构 方法 介面 失误 Goroutines 频道数 通道缓冲 频道同步 频道方向 选择 超时时间 非阻塞通道操作 关闭频道 通道范围 计时器 股票... -
Android实现高德地图轨迹回放
2020-10-30 14:13:53欢迎指正,不喜勿喷,请你善良,谢谢!!! 准备 官方文档解读 首先去[官网](https://lbs.amap.com/api/android-sdk/summary)查看开发指南进行项目中需要的内容准备。 创建应用: 左上角头像位置指针划过出现如图... -
地图-参考手册-地图 JS API | 高德地图API
2021-05-08 06:29:32方法返回值说明poiOnAMAP(obj:Object)唤起高德地图客户端marker页其中Object里面包含有{ id: "B000A7BD6C",POIIDname:String, 必要参数location:LngLat|position属性 必须参数}detailOnAMAP(obj:Object)唤起高德地图... -
不使用摄像机制作小地图,以及自定义拖拽小地图大小
2019-03-19 14:32:49小地图的制作网上其实有很多教程,最常见的就是MiniMap使用正交摄像机Render Texture制作,这种摄像机会实时在上空更新地图。但是使用摄像机无疑是耗费资源的,有时候需要的小功能其实只是需要标识自己所在的位置,... -
Android 之一 Android Studio 安装、配置等新手入门 + 百度地图定位 + 移动摇杆 的实现
2021-06-18 15:41:15最新在玩一款 VR 游戏:一起来捉妖。为了省事(实在是没有时间出去瞎溜达,仅仅是... 本人并不是搞移动开发的,对于 Java 并不熟悉,对于 Android 开发更是不了解。所以从最基本的开始,边学变搞!其中,遇到 -
野外怎样确定方位 户外辨别方向和位置的方法有哪些?
2021-02-05 09:19:40[导读]没有指南针的情况下户外辨别方向和位置的方法有哪些?野外迷路怎样确定方位?骑部落从4个方面给大家介绍下户外如何确定方位、夜间如何判断距离、地图与指北针的应用。参加户外运动必须要有正确的方向感,否则... -
百度地图地图API(常用)
2020-01-05 18:58:27百度地图开发常用网站 1、百度地图开放平台 http://lbsyun.baidu.com/ 2、百度地图Javascript API JavaScript API v3.0http://lbsyun.baidu.com/index.php?title=jspopular3.0 JavaScript API v2.0... -
双指针、BFS、最短路径问题
2022-04-05 22:21:15求链表中环的长度:只要相遇后一个不动,另一个前进直到相遇算一下走了多少步就好了 求链表倒数第k个元素:先让其中一个指针向前走k步,接着两个指针以同样的速度一起向前进,直到前面的指针走到尽头了,则后面的... -
GitHub - mingxuWang/Map: 高德地图API二次封装
2020-12-30 07:43:03Map组件设计文档组件设计目的分析当前各业务方向(销售端、商城、数据可视化、TMS)内地图相关应用的地图功能使用情况,封装Map组件供给各业务向进行使用。将高德地图API进行二次封装,降低地图相关功能学习代价,方便... -
微信小程序地图与位置相关操作
2022-03-20 18:24:47微信小程序地图与位置相关操作1、地图1.1 map的API1.2 简单地图示例1.3 MapContext对象常用操作1.4 地图操作示例2、位置2.1 位置API2.1.1 wx.getLocation(Object object)2.1.2 wx.openLocation(Object object)2.1.3 ... -
【机器人】 D*算法-动态路径规划
2021-07-18 21:41:13以Y为中心构成8邻域的九宫格 当不存在障碍物时,横向、竖向的连接/移动成本为1、斜向连接成本为1.4 当存在障碍物时,不管什么方向的连接/移动成本都设置为比较大的值,比如10000,以确保很难通过 虽然是有向图,... -
关于在vue2.6+ts技术栈下高德地图API的使用方法
2020-01-20 14:37:43但是对于一些没有没有声明文件的第三方模块,用起来会比较麻烦,过程中,我们用到的高德地图就是其中之一,虽然官方推荐使用vue-amap,但是想追求粒度更细的操作,还是原生的api更为方便,下面来记录一下全程的配置... -
地图之美(地图制图)
2019-07-14 15:18:08介绍地图的历史和制作方法 -
高德地图实现展示多个规划的路线
2021-12-03 15:34:46/**地图是否使用缓动效果, 默认值为true。此属性可被setStatus/getStatus 方法控制**/ jogEnable?: boolean; /**地图是否可通过鼠标滚轮缩放浏览, 默认为true。此属性可被setStatus/getStatus 方法控制**/ ... -
栅格占用地图
2021-08-02 21:16:25概率栅格法是一种近似描述,易于创建和维护,对某个栅格的感知信息可直接与环境中某个区域对应,机器人对所测得的障碍物具体形状不敏感,特别适于处理超声、激光测量数据。但当在大型环境中或栅格单元划分比较细时,... -
动态场景SLAM相关论文总结
2022-01-07 16:35:29(4)动态特征-局部地图动态点关联:动态特征与局部地图中的动态点匹配关联,通过两种方法:地图中目标速度已知,就用匀速假设投影地图动态目标上的动态点到当前帧来寻找匹配,如果匹配点对不满足上边的实例匹配,... -
Android移动开发-在Android项目里调用基于百度地图API实现定位
2017-12-07 20:12:31比如说天气预报程序可以根据用户所在的位置自动选择城市,发微博的时候我们可以向朋友晒一下自己的地理位置,不认识路的时候随时打开地图就可以查询路线;如果你出门打车用滴滴或Uber打车,你可以看到 -
Js 跟手转动的罗盘指针
2017-06-26 00:05:39或许跟手拖拽已经足够普遍,可是跟手沿着圆弧转动的罗盘指针,却依然足够挑战,先来看看我们要实现的小目标,查看效果(请用手机打开,或者用chrome的手机模式打开) 任务分解、分析 一、 跟手拖拽的一般套路 ... -
Android实现高德地图轨迹回放,android开发遇到的技术难点
2021-12-06 02:41:00写在前面 准备 官方文档解读 创建应用: 地图api引入: 权限添加 ...地图初始化 ...本篇文章是对近期工作项目中集成高德地图轨迹回放和单/多点标记功能的一个总结。...欢迎指正,不喜勿..