Google 地图 Javascript API:marker.setPosition 问题测试模拟</tit...</desc> <question vote="4"> <p>这可能是显而易见的事情......但我看不到它。 以下代码对除marker.setPosition 操作之外的所有内容均按预期工作:</p> <pre><code><head> <title>Test Simulation</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" src="http://maps.googleapis.com/maps/api/js?key=x&sensor=false"> </script> <script type="text/javascript"> var marker = null; var myLatlng = null; var map = null; var image = null; var mapOptions = null function movemarker() { xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET","http://x.com/x13/?testloc=1",false); xmlhttp.send(); var data = xmlhttp.responseText; vals = data.split(','); latv = parseFloat(vals[0]); lonv = parseFloat(vals[1]); myLatlng = new google.maps.LatLng(latv,lonv); var fld = document.getElementById('before_map'); fld.innerText = ' ' + 'lat:' + latv + ', lon: ' + lonv + ' ' + myLatlng.toString(); marker.setPosition = myLatlng; } function initialize() { myLatlng = new google.maps.LatLng(44.809122,-36.650391); mapOptions = { center: myLatlng, zoom: 3, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); image = 'http://x.com/x_icon.gif'; marker = new google.maps.Marker( { position: myLatlng, map: map, icon: image, title:"Hello World!" }) window.setInterval("movemarker()",5000); } </script> </head> <body onload="initialize(); "> <div id="before_map">Test area...</div> <div id="map_canvas" style="align:right; width:600; height:500"></div> </code></pre> <p>“before_map”测试区域显示新的纬度和经度值——每 5 秒更新一次。</p> <p>我已经根据类似问题的答案进行了调整,但我仍然陷入困境。</p> </question> <answer tick="true" vote="26"> <p>setPosition 是一个方法。您需要将代码修改为 </p> <pre><code>marker.setPosition(myLatlng); </code></pre> <p>请检查是否有效。</p> </answer> <answer tick="false" vote="10"> <p>marker.setPosition 是一个函数,而不是一个属性,我想你想要</p> <p><pre><code>marker.setPosition(myLatlng);</code></pre></p> </answer> <answer tick="false" vote="0"> <p><strong>自 2024 年 2 月 21 日 (v3.56) 起,google.maps.Marker 已弃用</strong>。</p> <p>3.56版本引入了<a href="https://developers.google.com/maps/documentation/javascript/advanced-markers/start" rel="nofollow noreferrer">AdvancedMarkerElement</a>,它没有<pre><code>marker.setPosition(myLatlng)</code></pre>方法。以下是如何使用新的高级标记以及如何将其更新到新位置。</p> <pre><code>const map = new google.maps.Map(document.getElementById("map"), { center: { lat: 37.4239163, lng: -122.0947209 }, zoom: 14, mapId: "MyMapId", }); const marker = new google.maps.marker.AdvancedMarkerElement({ map: map, position: { lat: 37.4239163, lng: -122.0947209 }, gmpDraggable: true, title: "My draggable marker" }); </code></pre> <p>更新标记位置:</p> <pre><code>marker.position = { lat: 37.4239278, lng: -122.0943694 } </code></pre> <p>请注意,新的高级标记需要 <pre><code>map</code></pre> 对象具有 <pre><code>mapId</code></pre> 属性,否则将无法工作。</p> </answer> </body></html>

问题描述 投票:0回答:0
javascript google-maps marker
© www.soinside.com 2019 - 2024. All rights reserved.