小编mky*_*ong的帖子

选择JavaScript数组中的最后一个元素

我正在制作一个实时更新用户位置和路径的应用程序,并在Google地图上显示.我的功能允许使用每秒更新一次的对象同时跟踪多个用户.

现在,当用户按下Android应用程序中的按钮时,坐标将被发送到数据库,每次位置更改时,都会在地图上更新标记(并形成折线).

由于我有多个用户,因此我会发送一个唯一且随机生成的字母数字字符串,以便为每个用户显示单独的路径.当JS从数据库中提取此数据时,它会检查用户是否存在,如果不存在,则会创建一个值为列表的新密钥.它看起来像这样:

loc = {f096012e-2497-485d-8adb-7ec0b9352c52: [new google.maps.LatLng(39, -86),
                                              new google.maps.LatLng(38, -87),
                                              new google.maps.LatLng(37, -88)],
       44ed0662-1a9e-4c0e-9920-106258dcc3e7: [new google.maps.LatLng(40, -83),
                                              new google.maps.LatLng(41, -82),
                                              new google.maps.LatLng(42, -81)]}
Run Code Online (Sandbox Code Playgroud)

我正在做的是存储一个坐标列表作为键的值,这是用户的ID.每次更改位置时,我的程序会通过添加到列表来更新此列表(这可以正常工作).

我需要做的是每次位置更改时更新标记的位置.我想通过选择数组中的最后一项来做到这一点,因为那将是最后一个已知的位置.现在,每次更改位置时,都会向地图添加一个新标记(示例中的每个点都会在该位置显示标记),因此继续添加标记.

每次位置更新时,我会使用'for(x in loc)`语句从列表中获取最后一个位置并使用它来更新标记.如何在哈希中从数组中选择最后一个元素?

javascript arrays google-maps google-maps-markers

497
推荐指数
13
解决办法
82万
查看次数

如何获得所选单选按钮的值?

我的JS程序遇到了一些奇怪的问题.我有这个工作正常但由于某种原因它不再工作.我只是想找到单选按钮的值(选择哪一个)并将其返回到变量.由于某种原因,它不断返回undefined.

这是我的代码:

function findSelection(field) {
    var test = 'document.theForm.' + field;
    var sizes = test;

    alert(sizes);
        for (i=0; i < sizes.length; i++) {
            if (sizes[i].checked==true) {
            alert(sizes[i].value + ' you got a value');     
            return sizes[i].value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

submitForm:

function submitForm() {

    var genderS =  findSelection("genderS");
    alert(genderS);
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<form action="#n" name="theForm">

    <label for="gender">Gender: </label>
    <input type="radio" name="genderS" value="1" checked> Male
    <input type="radio" name="genderS" value="0" > Female<br><br>
    <a href="javascript: submitForm()">Search</A>
</form>
Run Code Online (Sandbox Code Playgroud)

html javascript for-loop radio-button

241
推荐指数
12
解决办法
70万
查看次数

动态创建链接Javascript

我正在尝试将我的文本设置为链接,以便当我单击它时,它会运行一个函数.现在我只是将它设置为google.com以尝试将文本显示为链接,但它似乎根本没有做任何事情.这只是静态文本.有什么建议?

        var leftDiv = document.createElement("div"); //Create left div
        leftDiv.id = "left"; //Assign div id
        leftDiv.setAttribute("style", "float:left; width:66.5%; line-height: 26px; text-align:left; font-size:12pt; padding-left:8px; height:26px;"); //Set div attributes
        leftDiv.style.background =  divColor;
        a = document.createElement('a');
        a.setAttribute('href', 'google.com');
        user_name = a.appendChild(document.createTextNode(fullName + ' '));

        leftDiv.appendChild(user_name); // Add name to left div
Run Code Online (Sandbox Code Playgroud)

javascript href createelement

14
推荐指数
2
解决办法
6万
查看次数

runOnUiThread未定义类

我正在尝试从我的后台线程抛出UI警告对话框,但是我遇到了runOnUiThread未定义的问题.我已经尝试过FindLocation.this.runOnUiThreadrunOnUiThread,但两者似乎都抛出相同的错误The method runOnUiThread(new Runnable(){}) is undefined for the type new LocationListener(){}(或...the type FindLocation).有什么想法吗?这是我的FindLocation.java类的片段.这是我的主要活动.

public class FindLocation extends Thread {

public boolean inJurisdiction;
public boolean AlertNotice = false;
private LocationManager locManager;
private LocationListener locListener;

Context ctx;
public String userId;

public FindLocation(Context ctx) {
     this.ctx = ctx;
}

 public void start(String userId) {
        this.userId = userId;
        super.start();

      }

@Override
public void run() {
     Looper.prepare();
    final String usr = userId;  

    //get a reference to the LocationManager
    locManager …
Run Code Online (Sandbox Code Playgroud)

java multithreading android dialog

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

动态更改折线颜色

我有一个网络应用程序,将为每个用户绘制折线(跟踪运动),我想结合一些功能,允许网络应用程序用户通过更改折线的颜色"聚焦"某个用户.首先必须将所有折线更改为红色,然后将所选折线更改为蓝色.我认为最好避免专注于一行,然后尝试专注于另一行并让它们都是蓝色的.我真的不确定如何实现它,但我有功能,在按下名称时返回用户ID.我只需要迭代每个对象(每个用户的折线)首先将它们更改为红色,然后将特定的一个更改为蓝色.以下是一些代码.如果你能指出我正确的方向,我会很感激.谢谢.这是我的代码的精简版本,所以我希望它提供足够的信息.

function User(id) {
this.id = id;

this.locations = [];

this.mark = 0;

this.getId = function() {
    return this.id;
};

this.addLocation = function(latitude, longitude) {
    this.locations[this.locations.length] = new google.maps.LatLng(latitude, longitude);        
};
var polyline;
this.drawPolyline = function(loc) {
        polyline = new google.maps.Polyline({
        map: map,
        path: loc,
        strokeColor: "#FF0000",
        strokeOpacity: 1.0,
        strokeWeight: 2
        });
    polyline.setMap(map);
};

this.removePolyline = function() {
    if (polyline != undefined) {
        polyline.setMap(null);
        }
    }
this.get_user_info = function(user_id) {

var datastr = 'id=' + user_id;
$.ajax({    
    type: "POST",
    url: …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps object polyline

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

发送到数据库时Android GPS延迟

我已经制作了一个Android应用程序,它将GPS坐标发送到PHP脚本(每秒一次),将它们发送到数据库进行存储,然后Javascript程序拉出坐标(每秒)并在地图上显示它们并跟踪用户带标记和折线.

但是,我在应用程序的可靠性方面遇到了麻烦.我在我的房间测试了它,我能够很好地收到位置更新,但是当我今天上课时,手机不会发送坐标.我走到外面,立即拿起一个信号,我的坐标被发送,然后由PHP脚本接收.对于这个我能做些什么,或者在大型建筑物内总是会有问题?我正在使用2.2.3,如果这有帮助的话.

我遇到的另一个问题是按下按钮和PHP脚本接收坐标之间的时间延迟.在数据库记录它们之前大约需要20-30秒.我将一些其他数据发送到另一个表,它几乎瞬间到达数据库.这可能是因为我有这么多程序,坐标必须通过,或者是时间延迟,因为手机必须运行更复杂的过程才能获得坐标?有什么办法可以减少延迟时间吗?

javascript php java gps android

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

动态创建下拉列表 - Javascript

我正在尝试开发一个JS函数,每次将新记录添加到数据库时(从定期检查的其他程序)创建一个新行.现在我可以获得检查数据库的功能,将记录添加到表中并动态显示.第一列是用户ID,第二列是我遇到问题的地方.我想包含一个下拉列表,但我不确定如何添加选项.我在第二列中有下拉列表,但没有可供选择的选项.有人有什么建议吗?

function addRow(tableID, user) {

var table = document.getElementById(tableID);

var rowCount = table.rows.length;
var row = table.insertRow(rowCount);

var colCount = table.rows[0].cells.length;

for(var i=0; i<colCount; i++) {
    var opt = document.createElement("option");

     tabbody=document.getElementsByTagName("tbody").item(2);
     cell1 = document.createElement("TD");
     cell2 = document.createElement("TD");
     textnode1=document.createTextNode(user);
     //textnode2=document.createTextNode("morecontent");
     textnode2=document.createElement("select");
     textnode2.setAttribute('id', 'focus');
     textnode2.options.add(opt);
     cell1.appendChild(textnode1);
     cell2.appendChild(textnode2);
     row.appendChild(cell1);
     row.appendChild(cell2);
     tabbody.appendChild(row);

    var newcell = row.insertCell(i);

    newcell.innerHTML = table.rows[0].cells[i].innerHTML;
Run Code Online (Sandbox Code Playgroud)

以下是发送到的HTML:

        <th colspan="2">Pending Alerts</th>
    <tr>
       <th>User</th>
       <th>Action</th>
        </tr>
    <tbody>
    </tbody>
Run Code Online (Sandbox Code Playgroud)

html javascript drop-down-menu

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

在 div 中将文本左对齐并垂直居中

我有这个 JS 代码,用于创建一个新的 div (我动态地创建了几个)。我希望我的文本垂直居中并与 div 的左侧对齐。有什么建议吗?这是我的代码:

        var leftDiv = document.createElement("div"); //Create left div
        leftDiv.id = "left"; //Assign div id
        leftDiv.setAttribute("style", "float:left;width:70%;vertical-align:middle; height:26px;"); //Set div attributes
        leftDiv.style.background = "#FFFFFF";
        leftDiv.style.height = 70; 
        user_name = document.createTextNode(fullName + ' '); //Set user name
Run Code Online (Sandbox Code Playgroud)

另一件事。这段代码将使文本水平居中,它似乎会被吸引到 div 的顶部而不是中间。

html javascript alignment

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

来自线程的警报对话 - Android

我有一个线程,每六秒钟就会向数据库发送一次GPS坐标,并且我会检查用户是否在一个已定义的区域内.如果用户不在该位置,我想要一个警告对话框,通知他们他们超出范围,如果他们在该区域内,我想要一个告诉他们在范围内的对话框.我检查工作正常,但我已经尝试过,我很确定我无法在后台线程上添加对话框.我已经阅读了一些关于使用处理程序的内容,但我不确定如何实现它.如果您有任何建议我会很感激!谢谢.

这是我FindLocation.java从主要活动(MainActivity.java)调用的方式:

new FindLocation(getBaseContext()).start(usr_id1); //sends a user id with it
Run Code Online (Sandbox Code Playgroud)

下边是 FindLocation.java

public class FindLocation extends Thread {

public boolean inJurisdiction;
public boolean AlertNotice = false;
private LocationManager locManager;
private LocationListener locListener;

Context ctx;
public String userId;

public FindLocation(Context ctx) {
     this.ctx = ctx;
}

 public void start(String userId) {
        this.userId = userId;
        super.start();
      }

 @Override
public void run() {
     Looper.prepare();
    final String usr = userId;      

    //get a reference to the LocationManager
    locManager = (LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE); …
Run Code Online (Sandbox Code Playgroud)

java multithreading android handler android-alertdialog

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

动态改变Div的颜色 - Javascript

我认为这应该是一个简单的问题,但我无法搞清楚.我在父div中有两个div,我想改变正确div(javascript)的颜色.我的代码循环遍历子div,然后更改两者的颜色.我无法弄清楚如何选择正确的div并改变它的颜色.这是我的代码(这会改变两者的颜色):

    var color = "#fdd42e";
    var element = document.getElementById(user_id).childNodes;

    for (i=0;i< element.length;i++) {

        if(element[i].id = 'right') {
            element[i].style.background = color;
        }
        else {
        }

    }
Run Code Online (Sandbox Code Playgroud)

html javascript colors dynamic

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