标签: android-mapview

如何在Android中一键删除mapview中的所有标记?

我在地图上有 2 个标记,我想在用户单击按钮时删除它们。这是我的方法:

 public void deleteAllMarkers() {
    if(mapView.getOverlays().size() !=0) { 
        //Log.d("MAPA ",Integer.toString(mapView.getOverlays().size()));
        for (int i=0; i<mapView.getOverlays().size(); i++ ) {
            mapView.getOverlays().remove(i);
        }
        mapView.postInvalidate();
    }   
}
Run Code Online (Sandbox Code Playgroud)

问题是我必须按两次按钮才能摆脱两个标记,因为在第一次按下后只有 1 个标记消失。

我究竟做错了什么?

android itemizedoverlay android-mapview

1
推荐指数
1
解决办法
5046
查看次数

从JSON url读取数据但android不允许.NetworkOnMainThread异常和StrictMode $ AndroidBlockGuardPolicy错误

我正在尝试在Android应用程序中使用Google Map.MainActivity包含EditText,ImageButton和MapView.当用户提供一些查询并点击ImageButton时,MainAcitivity应该从url获取一些JSON数据然后我需要使用该JSON数据在用户单击这些Markers时创建Markers和dialogBox.每当我运行应用程序时,它运行正常.但是当我单击ImageButton时,应用程序停止给出logcat错误NetworkOnMainThreadException和StrickMode $ AndroidBlockGuardPolicy.我附加了logcat输出和MainActivity.我运行这个JSON程序创建其他测试项目,它工作得很好.但是当我将它添加到MainAcitivity时,它不起作用.我相信,android的安全策略阻止它从url获取数据.

那么这个错误的原因是什么?如何使这个Activity工作?非常感谢朋友们的关注.如果您需要更多CustomOverlayItem对象或JSON对象的代码,请告诉我.

public class MainActivity extends MapActivity {

        private List<Home> listHome = new ArrayList<Home>();

        @Override
        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            MapView mv_map = (MapView) findViewById(R.id.mv_map);
            MapController mapController = mv_map.getController();
            mv_map.setBuiltInZoomControls(true);
            mapController.setZoom(5);
            Markers markers = new Markers(this.getResources().getDrawable(
                    R.drawable.ic_action_home), this);
            CustomOverlayItem items = new CustomOverlayItem(getuserLocation(),
                    "Checking", "Checking");
            List<Overlay> overlays = mv_map.getOverlays();
            markers.addOverlayItem(items);
            overlays.add(markers);

            ImageButton ib_search = (ImageButton) findViewById(R.id.ib_search);
            ib_search.setOnClickListener(new OnClickListener() {

            @Override
                public void onClick(View v) {
                    Json json = new Json();
                    listHome = json.getListHome();
                    EditText editText …
Run Code Online (Sandbox Code Playgroud)

android json gson android-networking android-mapview

1
推荐指数
1
解决办法
2676
查看次数

错误膨胀类片段Android Map v2

我知道这是一个重复的问题,但上一篇文章中的解决方案对我没有用.那就是为什么要问这个问题.

我试图在Android App中实现Google Map V2,我得到以下错误

06-26 19:24:51.035: E/AndroidRuntime(7679): FATAL EXCEPTION: main
06-26 19:24:51.035: E/AndroidRuntime(7679): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.titutorial.mapdemo/com.titutorial.mapdemo.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
06-26 19:24:51.035: E/AndroidRuntime(7679):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
06-26 19:24:51.035: E/AndroidRuntime(7679):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
06-26 19:24:51.035: E/AndroidRuntime(7679):     at android.app.ActivityThread.access$600(ActivityThread.java:140)
06-26 19:24:51.035: E/AndroidRuntime(7679):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
06-26 19:24:51.035: E/AndroidRuntime(7679):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-26 19:24:51.035: E/AndroidRuntime(7679):     at android.os.Looper.loop(Looper.java:137)
06-26 19:24:51.035: E/AndroidRuntime(7679):     at android.app.ActivityThread.main(ActivityThread.java:4898)
06-26 19:24:51.035: E/AndroidRuntime(7679):     at java.lang.reflect.Method.invokeNative(Native Method)
06-26 19:24:51.035: E/AndroidRuntime(7679):     at java.lang.reflect.Method.invoke(Method.java:511)
06-26 19:24:51.035: E/AndroidRuntime(7679):     at …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-mapview google-maps-android-api-2

1
推荐指数
1
解决办法
3万
查看次数

如何在android中从lat long获取地图视图图像

在我的应用程序中,用户希望通过搜索或触摸类似whatsApp 的地图来发送他的位置,然后我想创建一个与 whatsapp 相同的触摸位置或搜索位置的缩略图。

我在互联网上搜索我只找到了这个,但是很难用 eclipse 和 android 低版本来实现。那么有没有其他方法可以做到

提前致谢

android android-mapview

1
推荐指数
1
解决办法
3551
查看次数

如何使用Google Map的V2 MapView for Android显示操作栏?

我正在尝试在Google地图上方显示操作栏,但我意识到,一旦Google地图打开,它就不会使用我的应用程序,而是Google的应用程序,因此标题栏会消失.

据我所知,使用MapView可以实现这一点,但我不知道如何从使用片段转换到MapView,因为我得到了NullPointerException.

这是AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.test" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/logo"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="@string/google_maps_key" />

        <activity
            android:name=".MapActivity"
            android:label="@string/title_activity_map" >
        </activity>

    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

我的activity_map.xml:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/map"
    tools:context="org.test.MapActivity"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    map:cameraTargetLat="35.25215"
    map:cameraTargetLng="-112.24659"
    map:uiTiltGestures="true"
    map:uiZoomGestures="true"
    map:uiZoomControls="true" />
Run Code Online (Sandbox Code Playgroud)

我的activity_mapview.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.google.android.gms.maps.MapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" …
Run Code Online (Sandbox Code Playgroud)

android google-maps android-fragments android-mapview

1
推荐指数
1
解决办法
7369
查看次数

如何在swift中清除mapview上的图钉?

我的应用程序的一部分包含一个mapview,它会根据关键字自动搜索.我在mapview中添加了一个文本框和搜索按钮,但我注意到之前搜索中的引脚没有清除.在新搜索之前如何清除所有引脚的地图?

import UIKit
import MapKit
import CoreLocation
import iAd

class MapClass: UIViewController, CLLocationManagerDelegate, UISearchBarDelegate, ADBannerViewDelegate {

var searchController:UISearchController!
var annotation:MKAnnotation!
var localSearchRequest:MKLocalSearchRequest!
var localSearch:MKLocalSearch!
var localSearchResponse:MKLocalSearchResponse!
var error:NSError!
var pointAnnotation:MKPointAnnotation!
var pinAnnotationView:MKPinAnnotationView!

var holidayKeyWord = NSString()

@IBOutlet var mapSearchTextbox: UITextField!
@IBOutlet weak var mapView: MKMapView!
@IBOutlet var adBannerView: ADBannerView!
var locationManager: CLLocationManager!

let searchRadius: CLLocationDistance = 2000

override func viewDidLoad() {
    super.viewDidLoad()

    holidayKeyWord = "Restaurant"

    println(holidayKeyWord)
    mapSearchTextbox.text = holidayKeyWord as String

    self.canDisplayBannerAds = true
    self.adBannerView?.delegate = self
    self.adBannerView?.hidden = false …
Run Code Online (Sandbox Code Playgroud)

xcode mapkit android-mapview swift ios8

1
推荐指数
2
解决办法
5860
查看次数

如何在谷歌地图android中显示当前位置的平滑移动

我正在实现一个地图导航应用程序。我每 1000 毫秒获取一次设备的当前位置并绘制一条折线,从当前位置到固定标记点。但是当在车内使用设备时,折线和当前位置更新不像优步或谷歌地图那样具有动画效果。它从一个点突然变成另一个点。

如何获得当前位置变化的平滑动画。

android google-maps android-mapview android-maps-v2

1
推荐指数
1
解决办法
3793
查看次数

世博会在 Android 上反应原生 MapView 的问题

在项目的博览会中使用 MapView 时遇到问题。在 expo 应用程序中,iOS 和 Android 上一切正常,但是当构建相同的应用程序并将其发布到 Android apk 时,无论是在 Play 商店还是在打开地图时注意,应用程序都会崩溃并重新加载。

我在用:

  • 世博会 37.0.0
  • 反应原生博览会 SDK 37.0.1
  • react-native-maps 0.27.1

这是代码:

import { PROVIDER_GOOGLE } from 'expo';
import MapView, { Marker, Callout, CalloutSubview } from 'react-native-maps';

<MapView
  ref={'map'}
  onPress={() => this._mapPress()}
  provider={PROVIDER_GOOGLE}
  style={styles.mapView}
  initialRegion={{
      latitude: mapLat,
      longitude: mapLon,
      latitudeDelta: 0.0922,
      longitudeDelta: 0.0421
  }}
>
  {markers.map((marker, i) => (
      <Marker
          key={`marker-${i}`}
          coordinate={marker.latlng}
          stopPropagation={true}
          onPress={e => this._mapMarkerPress(marker)}
      >
          <Image
              resizeMode='cover'
              source={
                  JSON.stringify(this.state.selectedMarker) == JSON.stringify(marker)
                      ? ACTIVE_PIN
                      : INACTIVE_PIN
              }
              style={styles.mapMarker}
          /> …
Run Code Online (Sandbox Code Playgroud)

google-maps android-mapview react-native expo

1
推荐指数
1
解决办法
2247
查看次数

如何删除地图上标记上的阴影?

我在Google地图上显示自定义标记.他们被安排得很好,但他们有这个有趣的阴影.我怎样才能删除阴影?替代文字

@Override
        public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {
            super.draw(canvas, mapView, shadow);

            // ---translate the GeoPoint to screen pixels---
            Point screenPts = new Point();
            mapView.getProjection().toPixels(geoPnt, screenPts);

            // ---add the marker---
            /*Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pushpin);
            canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 67, null);*/
            return true;
        }
    }
Run Code Online (Sandbox Code Playgroud)

java android google-maps overlay android-mapview

0
推荐指数
1
解决办法
2991
查看次数

设置iPhone模拟器的当前位置

我想解释一下我所面临的情况.默认情况下,iPhone模拟器的当前位置是"循环".我有一个正在南非使用的应用程序(例如).如果我在模拟器上测试"靠近我"的功能.它什么都不会显示.同样如果我想在真实设备上测试我的应用程序,它对我来说不起作用,因为我位于印度.我要做的是"在模拟器上设置当前位置".Blackberry模拟器和Android模拟器/模拟器提供 - 设置当前位置以在模拟器上进行测试.

在这种情况下你怎么做?

iphone google-maps cllocationmanager android-mapview

0
推荐指数
2
解决办法
8111
查看次数