我正在使用这个布局的新Android地图V2:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
map:cameraBearing="270"/>
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用newLatLngBounds(LatLngBounds bounds,int padding)方法来缩放和查看地图中的所有标记,但摄像机方位设置为0.
谷歌开发者文档中的描述说:
public static CameraUpdate newLatLngBounds(LatLngBounds bounds,int padding)(...).返回的CameraUpdate的轴承为0,倾斜度为0.(...)".
如何更改轴承值?
在调用newLatLngBounds之后,我尝试以编程方式设置新轴承,如下所示:
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100));
mMap.moveCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition.Builder()
.target(mMap.getCameraPosition().target)
.zoom(mMap.getCameraPosition().zoom)
.bearing(270)
.build()));
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,一些标记将不会显示出来.
我正在我的地图上绘制一个圆圈,如下所示:
CircleOptions circle=new CircleOptions();
circle.center(centre);
circle.strokeColor(0xFFFFA420);
circle.strokeWidth(2f);
circle.fillColor(0x11FFA420);
circle.radius(radius);
myMap.addCircle(circle);
Run Code Online (Sandbox Code Playgroud)
要删除此圈子,我正在调用myMap.clear(),这会删除添加到地图中的所有项目.问题是如何删除此圈而不删除地图上的所有其他项目?
目前,我可以使用Android Google Maps API v2在Google地图中查看我的所有标记.
在地图中添加我的标记:
mapView.addMarker
(new MarkerOptions()
.position(aUsersLocation).
icon(BitmapDescriptorFactory.fromBitmap(aUserImage))
.snippet(My_VALUE_1)
.title(My_VALUE_2)
.hideInfoWindow();
Run Code Online (Sandbox Code Playgroud)
我有几个标记,并为每个标记的代码段和标题指定了几个值(My_VALUE_1和My_VALUE_2).当用户点击标记时,我需要这些唯一值,我将在onMarkerClick监听器中收到以下值:
@Override
public boolean onMarkerClick(Marker theMarker)
{
String aValue1 = theMarker.getSnippet();
String aValue2 = theMarker.getTitle();
theMarker.getPosition().latitude...
...
return false;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:当我将标题和标题值添加到标记时,当用户单击标记时,会显示infoWindow.
我需要隐藏标记的infoWindow.我尝试使用hideInfoWindow,但似乎无法正常工作.
请给我任何建议.
谢谢.
android google-maps android-maps android-mapview android-maps-v2
如何以编程方式更改com.google.android.gms.maps.SupportMapFragment的宽度和高度?我想你可以将它包装在一个带有match_parent的视图组中,但是如果我没有必要的话,我希望不要嵌套(老实说甚至不确定它是否有效).
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/storefront_map"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="250dp"
/>
Run Code Online (Sandbox Code Playgroud)
为了给出上下文,我想在地图点击时将地图从一个高度扩展到另一个高度.
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
expandMap(); // not sure how to do this programatically.
}
});
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒!
使用2个简单的活动.第一个Activity只包含一个按钮来启动第二个包含地图的Activity:
主要活动:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goToMap(View view){ //This is just the onClick method for the button
Intent intent=new Intent( this, BigMapTest.class);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
地图活动:
public class BigMapTest extends FragmentActivity {
SupportMapFragment mapFragment;
GoogleMap map;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.travel_diary_big_map);
mapFragment=(SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.big_map);
map=mapFragment.getMap();
}
Run Code Online (Sandbox Code Playgroud)
地图活动的XML布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/big_map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.google.android.gms.maps.SupportMapFragment"
/>
Run Code Online (Sandbox Code Playgroud)
现在当我运行这段代码时,按下按钮移动到带有地图的Activity,然后按回去进入第一个活动...然后重复这个过程,我可以看到每次堆的大小都在增加,直到达到这是限制,然后开始钳制.如果你用地图(即缩放)混乱一点,我可以在这一点上获得一个OOM异常.
01-25 16:10:13.931:D/dalvikvm(21578):GC_FOR_ALLOC释放1898K,7%空闲45859K/49187K,暂停204ms …
android google-maps-android-api-2 supportmapfragment android-maps-v2
我想在片段内添加自定义布局的地图.
onCreateView mapView = super.onCreateView(inflater, container, savedInstanceState);
并将其插入到膨胀的布局中.主要问题是,然后片段尝试从保存状态恢复谷歌地图SDK内部粉碎.
有没有其他方法可以解决这个问题.如果谷歌地图团队的某个人会推荐正确的方法会很好,因为你没有在样本中加入这样的东西.
我在我的应用程序中显示谷歌地图api v2.我在地图上设置了一些标记.我还在单击标记时显示的标记上设置了标题和片段.
现在,我想在点击标记的标题时调用新活动,而不是标记本身.
map.setOnMarkerClickListner
Run Code Online (Sandbox Code Playgroud)
仅在单击标记时调用.
但我不想这样做.我希望标记在点击标记时显示标题和片段,但我想在点击标题时调用新活动.
知道我们怎么做吗?
谢谢
根据我的要求,我在谷歌地图上绘制多边形,如下图所示.(使用地图v2) 
现在,我需要在用户输入特定多边形时显示警报.
如何识别我的当前位置是否在多边形中.(需要优化的方式,不需要耗尽电池)
提前致谢.
Android Google Map的setOnMyLocationChangeListener方法现已弃用.有谁知道如何绕过它?谢谢.
我正在将iOS应用程序移植到Android,并且使用Google Maps Android API v2. 该应用程序需要在地图上绘制热图叠加层.
到目前为止,看起来最好的选择是使用TileOverlay并实现自定义TileProvider.在该方法中getTile,我的方法被赋予x,y和zoom,并且需要以a的形式返回位图Tile.到现在为止还挺好.
我有一组热图项目,我将用它们在位图上绘制径向渐变,每个都有一个纬度/经度.我遇到以下两个任务有问题:
谢谢您的帮助!
UPDATE
感谢MaciejGórski的回答,以及marcin的实现,我能够回答我的问题的前半部分,但我仍然需要第二部分的帮助.为了澄清,我需要一个函数来返回指定纬度/经度的图块的x/y坐标.我试图扭转MaciejGórski的计算和marcin的答案而没有运气.
public static Point fromLatLng(LatLng latlng, int zoom){
int noTiles = (1 << zoom);
double longitudeSpan = 360.0 / noTiles;
double mercator = fromLatitude(latlng.latitude);
int y = ((int)(mercator / 360 * noTiles)) + 180;
int x = (int)(latlng.longitude / longitudeSpan) + 180;
return new Point(x, y);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
android google-maps google-maps-android-api-2 android-maps-v2
android ×10
android-maps-v2 ×10
google-maps ×5
android-maps ×2
geolocation ×1
geometry ×1
java ×1
polygons ×1