我的应用需要显示从A到B的Google地图路线,但我不想将Google地图放入我的应用程序 - 相反,我想使用Intent启动它.这可能吗?如果有,怎么样?
我在使用Android定位系统的NETWORK提供商获取当前位置坐标时遇到了麻烦.
已经阅读了很多教程,并为我的项目实现了4或5个现有的类,所有这些都给了我最后的坐标但不是当前的坐标.
我很确定问题是我缺少的基本问题,但我无法理解究竟是什么.
我现在使用的代码:
这是我的主要活动
package com.example.locationtests;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GPSTracker mGPS = new GPSTracker(this);
TextView text = (TextView) findViewById(R.id.texts);
if(mGPS.canGetLocation ){
mGPS.getLocation();
text.setText("Lat"+mGPS.getLatitude()+"Lon"+mGPS.getLongitude());
}else{
text.setText("Unabletofind");
System.out.println("Unable");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我用于跟踪的课程:
package com.example.locationtests;
import android.app.AlertDialog; …Run Code Online (Sandbox Code Playgroud) 我的地图包含多个点以点按用户经过的位置,但是折线未显示在道路上,而是显示了从一个标记到另一个标记的直线。我希望折线穿过马路:随着道路的转弯,它也应该转弯。
这是我的相关代码
dataholder = FirebaseDatabase.getInstance().getReference("UserLocation");
Log.d("onMapReady", "iam here");
dataholder.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d("data",String.valueOf(dataSnapshot.getValue()));
System.out.println(dataSnapshot.getValue());
for (DataSnapshot a : dataSnapshot.getChildren()) {
MapData mapData = a.getValue(MapData.class);
arrayList.add(mapData);
lati.add(arrayList.get(i).getLatituide());
longit.add(arrayList.get(i).getLongitude());
Log.d("mapi","i am in loop");
mMap = googleMap;
Double lat = Double.parseDouble(lati.get(i));
Double longi = Double.parseDouble(longit.get(i));
sydney = new LatLng(longi, lat);
points.add(sydney);
MarkerOptions mop = new MarkerOptions();
mop.position(sydney);
mop.title("check");
mMap.addMarker(mop);
Log.d("latitude", String.valueOf(lat));
Log.d("longitude", String.valueOf(longi));
// Add a marker in Sydney and move the camera
mMap.addMarker(new MarkerOptions().position(sydney).title("check"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); …Run Code Online (Sandbox Code Playgroud) 基本上我希望能够使用谷歌地图 v2 在地图上绘制雷达图像,具有良好的性能并且位图图像没有闪烁或延迟。
我目前正在使用 Maps v1 来执行此操作,并且效果很好,但 Maps v2 不太适合这样做。
您可能会认为 GroundOverlay 或 TileOverlay 可能有用,但是根据我从尝试使用它们的人那里读到的内容,您必须在绘制下一张图像之前 remove() 前一张图像,或者尝试绘制一些杂乱无章的图像位图图像作为标记或其他东西。它必须具有良好的性能。
所以我希望能够使用自定义视图或 ImageView 并使用它的 onDraw() 绘制位图并使其在地图上可见并随之移动。
喜欢:
<Outer Container>
<fragment .. />
<com.my.customView .. />
or
<ImageView .. />
</Outer Container>
Run Code Online (Sandbox Code Playgroud)
我在网络上到处寻找有关如何使用 Maps v2 执行此类操作的详细信息的可能示例,但一无所获。
我在当前的应用程序中使用了几个自定义视图,所以我对它们很熟悉,并且我有位图的边界框详细信息,我很确定我可以使用投影信息来帮助绘制它们。
另一个问题是如何调用 invalidate() 以便调用 onDraw()。
我只需要一些示例代码来展示如何从某种基于 View 的对象中使用 onDraw(),我可以尝试查看它是否有效,但不尝试使用“GroundOverlay”、“TileOverlay”或“标记”,我真的很感激!
谢谢!
我的问题标题似乎是现有的,但这是我的完整场景。
我有一个基于地图的操作活动,其中沿着道路绘制折线,比方说两个位置之间的路线。基本上,该应用程序跟踪用户当前位置(开车旅行)。因此,直到一切正常,如正确显示路线,设备位置 API 正在提供位置更新(有点精确),而且我也能够顺利更改位置更新,
所以问题是,位置更新有时是锯齿形的,有时可能不会接触道路,位置更新会到处都是。
我也研究过 ROAD api,但即使从之前提出的一些问题中也没有得到正确的帮助。
是否可以使标记仅沿着道路移动?
任何形式的帮助将不胜感激。