如何阻止标记在Android上闪烁
在我的应用程序中,我动态跟踪18个人,它工作正常没有问题,但有时标记开始闪烁,只有黑色的一个驱动程序标记和一个会员制造商不闪烁,这是标记的第一行 我的代码在这里` lat lng速度参数与驾驶员有关 和gpsLatLng.1,2,3。。。等等都是会员 我想我在marker options做了很多数学题,这可能是y如何阻止标记在Android上闪烁,android,google-maps,Android,Google Maps,在我的应用程序中,我动态跟踪18个人,它工作正常没有问题,但有时标记开始闪烁,只有黑色的一个驱动程序标记和一个会员制造商不闪烁,这是标记的第一行 我的代码在这里` lat lng速度参数与驾驶员有关 和gpsLatLng.1,2,3。。。等等都是会员 我想我在marker options做了很多数学题,这可能是y private void gotoLocation(double lat , double lng ,double speed){ //LatLng ll = new LatL
private void gotoLocation(double lat , double lng ,double speed){
//LatLng ll = new LatLng(lat, lng);
//CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom);
//mMap.animateCamera(update);
SessionManager sm =new SessionManager(getApplicationContext());
HashMap<String, String> user = sm.getUserDetails();
final String m_type = user.get(SessionManager.KEY_TYPE);
if(Integer.parseInt(m_type)!=1){
if(d_marker!=null){
d_marker.remove();
}
}else{
//if not
setMarker_driver(gpsLatLng.d_name, lat, lng,speed);
}
if(gpsLatLng.m1_lat!=0.0){
setMarker_m1(gpsLatLng.m1_name,gpsLatLng.m1_lat, gpsLatLng.m1_lng,gpsLatLng.m1_speed);
}
if(gpsLatLng.m2_lat!=0.0){
setMarker_m2(gpsLatLng.m2_name,gpsLatLng.m2_lat, gpsLatLng.m2_lng,gpsLatLng.m2_speed);
}
if(gpsLatLng.m3_lat!=0.0){
setMarker_m3(gpsLatLng.m3_name,gpsLatLng.m3_lat, gpsLatLng.m3_lng,gpsLatLng.m3_speed);
}
if(gpsLatLng.m4_lat!=0.0){
setMarker_m4(gpsLatLng.m4_name,gpsLatLng.m4_lat, gpsLatLng.m4_lng,gpsLatLng.m4_speed);
}
if(gpsLatLng.m5_lat!=0.0){
setMarker_m5(gpsLatLng.m5_name,gpsLatLng.m5_lat, gpsLatLng.m5_lng,gpsLatLng.m5_speed);
}
if(gpsLatLng.m6_lat!=0.0){
setMarker_m6(gpsLatLng.m6_name,gpsLatLng.m6_lat, gpsLatLng.m6_lng,gpsLatLng.m6_speed);
}
if(gpsLatLng.m7_lat!=0.0){
setMarker_m7(gpsLatLng.m7_name,gpsLatLng.m7_lat, gpsLatLng.m7_lng,gpsLatLng.m7_speed);
}
if(gpsLatLng.m8_lat!=0.0){
setMarker_m8(gpsLatLng.m8_name,gpsLatLng.m8_lat, gpsLatLng.m8_lng,gpsLatLng.m8_speed);
}
if(gpsLatLng.m9_lat!=0.0){
setMarker_m9(gpsLatLng.m9_name,gpsLatLng.m9_lat, gpsLatLng.m9_lng,gpsLatLng.m9_speed);
}
if(gpsLatLng.m10_lat!=0.0){
setMarker_m10(gpsLatLng.m10_name,gpsLatLng.m10_lat, gpsLatLng.m10_lng,gpsLatLng.m10_speed);
}
if(gpsLatLng.m11_lat!=0.0){
setMarker_m11(gpsLatLng.m11_name,gpsLatLng.m11_lat, gpsLatLng.m11_lng,gpsLatLng.m11_speed);
}
if(gpsLatLng.m12_lat!=0.0){
setMarker_m12(gpsLatLng.m12_name,gpsLatLng.m12_lat, gpsLatLng.m12_lng,gpsLatLng.m12_speed);
}
if(gpsLatLng.m13_lat!=0.0){
setMarker_m13(gpsLatLng.m13_name,gpsLatLng.m13_lat, gpsLatLng.m13_lng,gpsLatLng.m13_speed);
}
if(gpsLatLng.m14_lat!=0.0){
setMarker_m14(gpsLatLng.m14_name,gpsLatLng.m14_lat, gpsLatLng.m14_lng,gpsLatLng.m14_speed);
}
if(gpsLatLng.m15_lat!=0.0){
setMarker_m15(gpsLatLng.m15_name,gpsLatLng.m15_lat, gpsLatLng.m15_lng,gpsLatLng.m15_speed);
}
if(gpsLatLng.m16_lat!=0.0){
setMarker_m16(gpsLatLng.m16_name,gpsLatLng.m16_lat, gpsLatLng.m16_lng,gpsLatLng.m16_speed);
}
}
/*private void gotoCurrentLocation(){
Location currentLocation = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
if(currentLocation == null){
Toast.makeText(getApplicationContext(), "location is not aviable", Toast.LENGTH_LONG).show();
marker=null;
}else{
LatLng ll = new LatLng((currentLocation).getLatitude(),(currentLocation).getLongitude());
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, Zoom);
mMap.animateCamera(update);
if (marker != null) {
marker.remove();
}
setMarker(TITLE, ll.latitude, ll.longitude);
//option1 = new MarkerOptions().title("me").position(ll);
//marker = mMap.addMarker(option1);
// i got my point right here brotherssss just add the makerx of our van which will update in 5 seconds
}
}*/
private void setMarker_m1(String locality, double lat, double lng,double speed) {
if(m1!= null){
m1.remove();
}
MarkerOptions options = Moptions(locality, lat, lng, speed);
m1 = mMap.addMarker(options);
}
private void setMarker_m2(String locality, double lat, double lng,double speed) {
if(m2!= null){
m2.remove();
}
MarkerOptions options = Moptions(locality, lat, lng, speed);
m2 = mMap.addMarker(options);
}
private void setMarker_m3(String locality, double lat, double lng,double speed) {
if(m3!= null){
m3.remove();
}
MarkerOptions options = Moptions(locality, lat, lng, speed);
m3 = mMap.addMarker(options);
}
private void setMarker_m4(String locality, double lat, double lng,double speed) {
if(m4!= null){
m4.remove();
}
MarkerOptions options = Moptions(locality, lat, lng, speed);
m4 = mMap.addMarker(options);
}
private void setMarker_m5(String locality, double lat, double lng,double speed) {
if(m5!= null){
m5.remove();
}
MarkerOptions options = Moptions(locality, lat, lng, speed);
m5 = mMap.addMarker(options);
}
private void setMarker_m6(String locality, double lat, double lng,double speed) {
if(m6!= null){
m6.remove();
}
MarkerOptions options = Moptions(locality, lat, lng, speed);
m6 = mMap.addMarker(options);
}
private void setMarker_m7(String locality, double lat, double lng,double speed) {
if(m7!= null){
m7.remove();
}
MarkerOptions options = Moptions(locality, lat, lng, speed);
m7 = mMap.addMarker(options);
}
private void setMarker_m8(String locality, double lat, double lng,double speed) {
if(m8!= null){
m8.remove();
}
MarkerOptions options = Moptions(locality, lat, lng, speed);
m8 = mMap.addMarker(options);
}
private void setMarker_m9(String locality, double lat, double lng,double speed) {
if(m9!= null){
m9.remove();
}
MarkerOptions options = Moptions(locality, lat, lng, speed);
m9 = mMap.addMarker(options);
}
专用空位设置标记器_m11(管柱位置、双lat、双lng、双速度){
}
专用空隙设置标记器_m12(管柱位置、双纬度、双液化天然气、双速度){
}
专用无效设置标记器_m13(管柱位置、双lat、双lng、双速度){
}
专用空隙设置标记器_m14(管柱位置、双lat、双lng、双速度){
}
专用无效设置标记器_m15(管柱位置、双lat、双lng、双速度){
}
专用空隙设置标记器_m16(管柱位置、双lat、双lng、双速度){
}
专用void设置标记器_驱动器(字符串位置、双lat、双lng、双速){
专用标记选项(字符串位置、双lat、双lng、双速度){
Location targetLocation=新位置(“”;//不需要提供程序名称
targetLocation.setLatitude(lat);//当然是您的坐标//+“公里,时间:”+时间
targetLocation.设置经度(lng);
双倍距离=0;
双倍时间;
试一试{
距离=我的位置。距离到(目标位置)/1000;
速度=速度*3600/1000;
时间=距离/速度;
时间=时间/60;
时间=数学地板(时间*100)/100;
距离=数学楼层(距离*100)/100;
速度=数学地板(速度*100)/100;
}捕获(例外e){
`
开关
与if(…){…}else{…}
不同。您只能在案例
中使用=
。您必须执行以下操作:
int length = array.length;
switch (length) {
case 0:
case 1:
case 2:
[...]
case 11:
// your code here
break;
//other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
case 0: // 11 or under
break;
case 1: // 12 to 20
break;
case 2: // 21 or more
break;
}
请注意缺少的break
-语句,它们非常重要。
我建议您提供更多详细信息。
开关
与if(…){…}else{…}
不同。您只能在案例
中使用==
。您必须执行以下操作:
int length = array.length;
switch (length) {
case 0:
case 1:
case 2:
[...]
case 11:
// your code here
break;
//other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
case 0: // 11 or under
break;
case 1: // 12 to 20
break;
case 2: // 21 or more
break;
}
请注意缺少的break
-语句,它们非常重要。
我建议您提供更多详细信息。
开关
与if(…){…}else{…}
不同。您只能在案例
中使用==
。您必须执行以下操作:
int length = array.length;
switch (length) {
case 0:
case 1:
case 2:
[...]
case 11:
// your code here
break;
//other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
case 0: // 11 or under
break;
case 1: // 12 to 20
break;
case 2: // 21 or more
break;
}
请注意缺少的break
-语句,它们非常重要。
我建议您提供更多详细信息。
开关
与if(…){…}else{…}
不同。您只能在案例
中使用==
。您必须执行以下操作:
int length = array.length;
switch (length) {
case 0:
case 1:
case 2:
[...]
case 11:
// your code here
break;
//other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
case 0: // 11 or under
break;
case 1: // 12 to 20
break;
case 2: // 21 or more
break;
}
请注意缺少的break
-语句,它们非常重要。
我建议您提供更多详细信息。您不能。
开关
只能测试精确值
你可以做:
switch(array.length) {
case 0: case 1: case 2: case 3:
case 4: case 5: case 6: case 7:
case 8: case 9: case 10: case 11:
// do stuff
break;
default:
break;
}
但是为什么要这样做?是什么让你觉得它更快?你不能。开关只能测试精确的值 你可以做:
switch(array.length) {
case 0: case 1: case 2: case 3:
case 4: case 5: case 6: case 7:
case 8: case 9: case 10: case 11:
// do stuff
break;
default:
break;
}
但是为什么要这样做?是什么让你觉得它更快?你不能。开关只能测试精确的值 你可以做:
switch(array.length) {
case 0: case 1: case 2: case 3:
case 4: case 5: case 6: case 7:
case 8: case 9: case 10: case 11:
// do stuff
break;
default:
break;
}
但是为什么要这样做?是什么让你觉得它更快?你不能。开关只能测试精确的值 你可以做:
switch(array.length) {
case 0: case 1: case 2: case 3:
case 4: case 5: case 6: case 7:
case 8: case 9: case 10: case 11:
// do stuff
break;
default:
break;
}
但是你为什么要这样做?是什么让你觉得它更快呢?你不能使用
开关(根据你的例子)这样做。因为大小写的值是常量表达式(大小写*值*
)。你不能这样做(根据你的例子)使用switch
。由于case
的值是常量表达式(case*value*
)。使用switch
,您不能这样做(根据您的示例)。因为case
的值是常量表达式(case*value*
)。您不能这样做(根据您的示例)使用switch
。由于case
的值是常量表达式(case*value*
)。switch
语句通过精确匹配而不是像if
那样的比较来操作。您可以通过引入如下新变量来实现:
int length = array.length;
switch (length) {
case 0:
case 1:
case 2:
[...]
case 11:
// your code here
break;
//other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
case 0: // 11 or under
break;
case 1: // 12 to 20
break;
case 2: // 21 or more
break;
}
int-value=(array.lengthSwitch
语句通过精确匹配操作,而不是像if
那样通过比较操作。您可以通过引入如下新变量来完成所需操作:
int length = array.length;
switch (length) {
case 0:
case 1:
case 2:
[...]
case 11:
// your code here
break;
//other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
case 0: // 11 or under
break;
case 1: // 12 to 20
break;
case 2: // 21 or more
break;
}
int-value=(array.lengthSwitch
语句通过精确匹配操作,而不是像if
那样通过比较操作。您可以通过引入如下新变量来完成所需操作:
int length = array.length;
switch (length) {
case 0:
case 1:
case 2:
[...]
case 11:
// your code here
break;
//other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
case 0: // 11 or under
break;
case 1: // 12 to 20
break;
case 2: // 21 or more
break;
}
int-value=(array.lengthSwitch
语句通过精确匹配操作,而不是像if
那样通过比较操作。您可以通过引入如下新变量来完成所需操作:
int length = array.length;
switch (length) {
case 0:
case 1:
case 2:
[...]
case 11:
// your code here
break;
//other cases here
}
int value = (array.length <= 11 ? 0 : (array.length <= 20 ? 1 : 2));
switch (value) {
case 0: // 11 or under
break;
case 1: // 12 to 20
break;
case 2: // 21 or more
break;
}
int-value=(array.length在if/elseif中,if(array.length在if/elseif中,if(array.length在if/elseif中,if(array.length在if/elseif中,if(array.length)在if/elseif中,if(array.length)这个答案很聪明这个答案很聪明