我正在使用viewpager在两个操作栏选项卡之间滑动(使用eclipse向导进行此类导航).我正在使用android maps v2 api.
我想在我的一个标签里面有mapview,button和textview(我猜想有mapfragment是不可能的).
我从xml为我的片段扩充布局,如下所示:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.first_tab_fragment, container, false);
}
}
Run Code Online (Sandbox Code Playgroud)
我的first_tab_fragment.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.google.android.gms.maps.MapView
android:id="@+id/mapview"
android:layout_width="100dip"
android:layout_height="100dip"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/textView1"
android:layout_marginRight="15dp" >
</com.google.android.gms.maps.MapView>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView1"
android:layout_centerHorizontal="true"
android:text="Button" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/button1"
android:layout_marginBottom="133dp"
android:text="TextView" />
Run Code Online (Sandbox Code Playgroud)
不显示MapView,只显示textview和按钮.我也没有错.我是否必须编写一些代码来初始化mapview?
java android android-fragments android-viewpager android-maps-v2
我有一个Activity与MapFragment我添加到Activity编程使用FragmentTransaction:
private static final String MAP_FRAGMENT_TAG = "map";
private MapFragment mapFragment = null;
...
protected void onCreate(Bundle savedInstanceState) {
...
mapFragment = (MapFragment) getFragmentManager().findFragmentByTag(MAP_FRAGMENT_TAG);
if (mapFragment == null) {
mapFragment = MapFragment.newInstance();
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.fragment_wrapper, mapFragment, MAP_FRAGMENT_TAG);
fragmentTransaction.commit();
}
...
}
Run Code Online (Sandbox Code Playgroud)
标准方式.然后我从中获取GoogleMap实例mapFragment并设置其设置,设置监听器,用它做事.一切正常.
然后当用户完成地图时,AsyncTask触发显示a ProgressDialog,执行一些操作,将不同的片段放入fragment_wrapper并ProgressDialog再次关闭:
private class GetFlightsTask extends AsyncTask<Double, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// …Run Code Online (Sandbox Code Playgroud) 问题:
1)地图获取动画到达所需位置(代码中的第4行)但它已缩放到默认位置(代码中的第5行)
[将地图保留在指定缩放级别的默认位置]
2)我理解为什么问题发生但我不知道如何解决它.
3)如果我将第4行更改为moveCamera而不是将起作用的animateCamera,但我确实需要animateCamera()方法.
这是代码:
map=((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
MarkerOptions options=new MarkerOptions().position(new LatLng(13.0810,80.2740));
map.addMarker(options);
map.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(13.0810,80.2740)),4000,null);
map.animateCamera(CameraUpdateFactory.zoomTo(15.5f),2000,null);
Run Code Online (Sandbox Code Playgroud) 我的googleMap(v2)带有折线,用于显示用户当前位置和目标点之间的路线.
现在,我想根据用户移动更新折线.
当位置发生变化但折线闪烁时,我尝试重绘整条折线.
我没有找到在的PolylineOptions类的任何适当的功能
(功能的add()仅仅是增加一个顶点,但不更新或删除),
你有什么想法如何更新折线???
谢谢你给我的时间.
我一直在使用Google Maps v2和自定义磁贴.它工作正常,但我们经常在谷歌地图中获得黑色方块,而且它们非常具有破坏性.
我可以通过这样做非常简单地重现问题:
mapFragment = new MapFragment() {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mapFragment.getMap().setMapType(GoogleMap.MAP_TYPE_NONE);
}
};
FragmentTransaction trans = getFragmentManager().beginTransaction();
trans.replace(R.id.map, mapFragment);
trans.commit();
Run Code Online (Sandbox Code Playgroud)
我使用此代码和带有framelayout的标准活动.如果我在Nexus4的背景中放大得足够远,它会变黑.如果我把瓷砖放在上面,我会在放大时看到黑色闪光.
我已经看到了很多关于如何解决这个问题的解决方法,而且它们似乎根本没有用.它似乎只发生在某些缩放级别上,但我(A)需要那些缩放级别,而(B)似乎无法限制缩放(无需构建自定义缩放以进行缩放实现).
我已经使用自定义磁贴提供程序进行了一些测试.有了MAP_TYPE_NONE,一个简单地返回1个蓝色像素的瓷砖提供商和我的普通地图瓷砖提供商,我可以直观地看到地图从黑色 - >蓝色 - >我的地图变化.即使我的自定义蓝色瓷砖提供商立即返回1px蓝色瓷砖.
我正在使用Picasso库从网址添加标记到我的地图
由于标记不是ImageView,我试图使用Target
for(int x =0; x < mapIcon_url.length; x++){
Picasso.with(getActivity()).load(mapIcon_url[x]).resize(marker_size, marker_size+15).into(new Target() {
@Override
public void onSuccess(Bitmap b) {
bitmapMarker = BitmapDescriptorFactory.fromBitmap(b);
//create marker option
if(b != null)
markerOptions = new MarkerOptions().position(marker_position).icon(bitmapMarker));
else
markerOptions = new MarkerOptions().position(marker_position).icon(BitmapDescriptorFactory.fromResource(R.drawable.placeholder_pin)).snippet(String.valueOf(x));
marker = map.addMarker(markerOptions);
}
@Override
public void onError() {
//create marker option
markerOptions = new MarkerOptions().position(marker_position).icon(BitmapDescriptorFactory.fromResource(R.drawable.placeholder_pin)).snippet(String.valueOf(x));
marker = map.addMarker(markerOptions);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我在循环中执行此操作以添加大约20个标记但我发现在第一次运行代码时只添加了5或7个标记,所以我已经切换到使用lib和AsyncTask这样.
for(int x =0; x < mapIcon_url.length; x++){
new AddMarker().execute(mapIcon_url[x]);
}
public class AddMarker extends AsyncTask<String, Integer, BitmapDescriptor> { …Run Code Online (Sandbox Code Playgroud) 我正在以下列方式在我的地图上绘制一个纯色PolyLine,效果很好:
PolylineOptions polyLine = new PolylineOptions();
polyLine.width(5);
polyLine.color(Color.RED);
polyLine.geodesic(true);
for (int i = 0; i < speed.length; i++) {
polyLine.add(new LatLng(lat, lng));
}
map.addPolyline(polyLine);
Run Code Online (Sandbox Code Playgroud)
现在我想在不同点之间绘制不同颜色的折线,具体取决于这两点之间的速度.
似乎没有一种简单的方法可以做到这一点.
我指的是这个问题:在v2地图上绘制不同颜色的折线,我可以PolylineOptions一个接一个地添加多个,但我认为这不是一个有效的方法,因为我在一个简单的数据集中有超过2000个点画画.
有更好的做法吗?
理想的实现方式是Nike + app如何在地图上绘制线条:

非常感谢任何帮助.
提前致谢!
我已经在Google map使用中覆盖了多个位置LatLng.Builder并且它正在工作.有什么方法可以覆盖两个位置之间的整条路径Google map吗?
我的Curent Code包含多个位置
builder = new LatLngBounds.Builder();
builder.include(LatLng1);
builder.include(LatLng2);
googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 17));
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
谢谢
我正在创建一个应用程序,在某些点添加地图的图钉.我希望我的针脚的颜色与我们的应用程序的主题颜色相匹配.对不起,我真的是个菜鸟
int color = Color.rgb(255, 201, 14);
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
final LatLng PERTH = new LatLng(40, -80);
Marker perth = mMap.addMarker(new MarkerOptions()
.position(PERTH)
.title("MY PIN")
.snippet("MAGGIE EATS SNAKE SKINS")
.draggable(true)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pin))
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.color)));
Run Code Online (Sandbox Code Playgroud)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.color))); 不起作用.它不允许我在这里插入自定义颜色.我怎样才能做到这一点?谢谢:)
在我的Android应用程序中,我需要将标记放在地图上的确切位置.我用51.507351,-0.127758(伦敦)位置在地图上标记了一个标记.我使用以下代码来完成工作.
googleMap.addMarker(new MarkerOptions().position(
new LatLng(51.507351, -0.127758)).icon(
BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(getResources(),
R.drawable.q_icon))));
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
new LatLng(51.507351, -0.127758), 20));
Run Code Online (Sandbox Code Playgroud)
这是我的标记可绘图像:
现在我的问题是,"Q"符号位于51.507351,-0.127758的位置.我需要将标记放在底部箭头开始的位置.
请查看图片,以便了解我的问题.
我怎样才能做到这一点?请帮我.
android ×10
android-maps-v2 ×10
google-maps ×3
java ×2
android-maps ×1
colors ×1
markers ×1
picasso ×1