我在地图上有 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应用程序中使用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 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
在我的应用程序中,用户希望通过搜索或触摸类似whatsApp 的地图来发送他的位置,然后我想创建一个与 whatsapp 相同的触摸位置或搜索位置的缩略图。
我在互联网上搜索我只找到了这个,但是很难用 eclipse 和 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) 我的应用程序的一部分包含一个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) 我正在实现一个地图导航应用程序。我每 1000 毫秒获取一次设备的当前位置并绘制一条折线,从当前位置到固定标记点。但是当在车内使用设备时,折线和当前位置更新不像优步或谷歌地图那样具有动画效果。它从一个点突然变成另一个点。
如何获得当前位置变化的平滑动画。
在项目的博览会中使用 MapView 时遇到问题。在 expo 应用程序中,iOS 和 Android 上一切正常,但是当构建相同的应用程序并将其发布到 Android apk 时,无论是在 Play 商店还是在打开地图时注意,应用程序都会崩溃并重新加载。
我在用:
这是代码:
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地图上显示自定义标记.他们被安排得很好,但他们有这个有趣的阴影.我怎样才能删除阴影?
@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) 我想解释一下我所面临的情况.默认情况下,iPhone模拟器的当前位置是"循环".我有一个正在南非使用的应用程序(例如).如果我在模拟器上测试"靠近我"的功能.它什么都不会显示.同样如果我想在真实设备上测试我的应用程序,它对我来说不起作用,因为我位于印度.我要做的是"在模拟器上设置当前位置".Blackberry模拟器和Android模拟器/模拟器提供 - 设置当前位置以在模拟器上进行测试.
在这种情况下你怎么做?
android-mapview ×10
android ×7
google-maps ×5
expo ×1
gson ×1
ios8 ×1
iphone ×1
java ×1
json ×1
mapkit ×1
overlay ×1
react-native ×1
swift ×1
xcode ×1