android – PhoneGap中的Google Maps API v3:移动后标记无法正确绘制

android – PhoneGap中的Google Maps API v3:移动后标记无法正确绘制,第1张

概述我一直在 Android上使用PhoneGap开发Google Maps API 3应用程序.它应跟踪用户位置并使用标记和周围的圆圈标记位置.我一直在Android 2.3上开发它,它工作正常.然后我升级到Android 4.x的手机,它仍然运行良好,我想. 上周,当我移动标记时,我开始注意到它做了一些奇怪的事情.它似乎创建了一个重复的标记,而不是只是移动它.与圆圈相同.有时如果我改变缩放,那么复 我一直在 Android上使用PhoneGap开发Google Maps API 3应用程序.它应跟踪用户位置并使用标记和周围的圆圈标记位置.我一直在AndroID 2.3上开发它,它工作正常.然后我升级到AndroID 4.x的手机,它仍然运行良好,我想.

上周,当我移动标记时,我开始注意到它做了一些奇怪的事情.它似乎创建了一个重复的标记,而不是只是移动它.与圆圈相同.有时如果我改变缩放,那么复制品似乎就会消失.但是,它偶尔会画出一些奇怪的切线.见下图.

这是我在手机上收到AndroID 4.1更新版本后不久.不确定是否相关,我找不到任何有关问题的信息.

我将地图和phonegap代码减少到不到100行,它仍然在做.我很确定它与phonegap没有关系,但我将其升级到2.2无论如何确定,但它没有帮助.移动标记和圆圈时,有谁可以告诉我是否做错了什么?请注意,我在下面删除了我的Google Maps API密钥.

谢谢,
埃里克

<!DOCTYPE HTML><HTML><head><Title>Marker Test</Title><Meta name="vIEwport" content="initial-scale=1.0,user-scalable=no" /><style type="text/CSS">    HTML {height: 100%}    body {height: 100%; margin:0; padding:0}    #map_canvas {height: 100%}</style><script type="text/JavaScript" charset="utf-8" src="Js/phonegap.Js"></script><script type="text/JavaScript" charset="utf-8" src="http://maps.GoogleAPIs.com/maps/API/Js?key=YOUR_KEY_HERE&sensor=true"></script><script type="text/JavaScript" charset="utf-8">    // Wait for PhoneGap to load    //    document.addEventListener("deviceready",onDeviceReady,false);    // globals    var watchID = null;    var map = null;    var myLocationMarker = null;    var searchCircle = null;    // PhoneGap is ready    //    function onDeviceReady() {        startGPS();    }function startGPS() {    console.log("In startGPS");    var refreshMilliseconds = 5000;    var options = { frequency: refreshMilliseconds,enableHighAccuracy: true};    watchID = navigator.geolocation.watchposition(onGPSSuccess,onGPSError,options);    // create Google map    var mapOptions = {        zoom: 14,mapTypeID: Google.maps.MapTypeID.ROADMAP    };    map = new Google.maps.Map(document.getElementByID("map_canvas"),mapOptions);    myLocationMarker = new Google.maps.Marker({        Title: 'This is me!',zIndex: 90,map:map    });         searchCircle = new Google.maps.Circle({        fillcolor: '#c0e4dd',strokecolor: '#f15f22',fillOpacity: 0.5,radius: 1500,map:map    });     }var onGPSSuccess = function(p) {    // get the new coordinates    var lat = p.coords.latitude;    var lng = p.coords.longitude;    console.log("watch ID " + watchID);    // Now that we have the coordinates,we can move the marker and circle on the Google Map    MoveMarkerAndCircle(lat,lng);};var MoveMarkerAndCircle = function(lat,lng) {    var myLocation = new Google.maps.LatLng(lat,lng);    myLocationMarker.setposition(myLocation);    searchCircle.setCenter(myLocation);    map.setCenter(myLocation);  }var onGPSError = function() {    console.log("GPS Error");};var GenerateFakeMovement = function() {    var currentposition = myLocationMarker.getposition();    var newLat = currentposition.lat() + 0.01;    var newLng = currentposition.lng() + 0.01;    MoveMarkerAndCircle(newLat,newLng);}</script></head><body  >    <div ID="map_canvas" ></div>    <a href='#' onclick="GenerateFakeMovement();" >MAKE FAKE MOVEMENT</a></body></HTML>
解决方法 我有同样的问题,尝试将optimized:false属性设置为标记:

new Google.maps.Marker({  map: map,optimized: false,clickable: true});

这应该解决它!

总结

以上是内存溢出为你收集整理的android – PhoneGap中的Google Maps API v3:移动后标记无法正确绘制全部内容,希望文章能够帮你解决android – PhoneGap中的Google Maps API v3:移动后标记无法正确绘制所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存