在Android Map App上保存标记

时间:2016-09-16 17:46:19

标签: android google-maps google-maps-markers

我正在创建一个Android Map应用程序,我想在当前位置创建标记,并显示以前的这些标记。我能够在当前位置创建标记但是当我在不同位置恢复应用程序时,我的应用程序仅显示当前位置标记而不是之前的位置标记。请帮忙。这是我试过的:

<body class="w3-container">
<div class="w3-progress-container w3-round-xlarge">
    <div id="myBar" class="w3-progressbar w3-round-xlarge" style="width:1%"></div>
</div>

<button class="w3-btn" onclick="move()">Click Me</button> 

<script>

function widthGenerator() {
var question = prompt("Enter number of hours worked:", "Enter here");
var parseQuestion = parseInt(question, 10);
  if (isNaN(Number(question))) {
      var width = (question * 2.33463);
  } else {
    question = prompt("That is not a number; Enter the number of hours worked:", "Enter here");
  };

return width;
}
function move() {
var elem = document.getElementById("myBar"); 
var id = setInterval(frame, 1);
var startWidth = 0;
var generateWidth = widthGenerator()
function frame() {
    if (width >= 100) {
        clearInterval(id);
    } else {
        for (var x = startWidth; x < generateWidth; x++) {
            elem.style.width = x + '%';
        }
    }
  }
}
</script>
</body>

1 个答案:

答案 0 :(得分:1)

请注意:

onPause()方法中,您在文件中保存了listOfPoints中包含的位置,但您从未将最后的已知位置添加到该列表中。您可能希望在onConnect()方法中添加它。

编辑:启动应用时,会调用onCreate()onStart()onResume()方法(see Activity Lifecycle)。这意味着,当地图尚未准备就绪时,可能会调用addMarker()方法。您可能只想在之前调用onMapReady()方法时添加标记。

编辑(因为您更新了代码):

  • 使用openFileOutput("latlngpoints.txt", Context.MODE_APPEND)代替Context.MODE_PRIVATE
  • 你应该在onMapReady()onConnected(Bundle connectionHint)中阅读文件中的标记,就像你在onResume()方法中一样(因为当你运行应用程序时,地图不会准备就绪然而,除了onResume()
  • 中的if语句之外,你不会执行任何操作

另请注意,您的文件可能会包含重复项