google-maps 相关问题

Google地图是Google提供的桌面和移动网络地图服务应用程序和技术,提供卫星图像,街道地图和街景视图。还支持通过Google Maps API嵌入第三方网站的地图,以及世界各地许多国家的城市企业和其他组织的定位器。

如何解码Google的折线算法?

Google 的编码折线算法格式: 你如何解码这个? 也许向后运行算法;但我陷入了第 5 步:没有初始值,我如何知道它是否为正/负...

回答 3 投票 0

弃用标记类 - Google Map API 警告

我正在开发一个带有谷歌地图打字稿API的应用程序,今天我在启动应用程序时收到此警告消息-> 从 2024 年 2 月 21 日开始,google.maps.Marker 将不再 可用的。插入...

回答 1 投票 0

Android Studio - Google 地图 SDK - 空白 MapFragment

我在我们的项目中使用 Android Maps SDK 已经超过 5 年了。突然间,地图一片空白。 现在我已经更新了谷歌控制台中有关付款的所有数据,我想这可能就是问题所在。 我创造...

回答 1 投票 0

Google 地图 v3 - 打开时将信息窗口居中

我有一个运行良好的 Google 地图,但我只需要调整它,以便当单击标记并打开信息窗口时,我希望该标记(和地图)位于屏幕的中心。这太...

回答 1 投票 0

如何在页面首次加载时自动选择自动完成地点建议?

我正在使用 Google 地图自动完成服务,当我开始在附加到该服务的输入框中键入内容时,它会在下拉列表中提供预测。 但是,在我的应用程序中,我首先让用户进入...

回答 2 投票 0

使用 Android Google Maps API 查找路线

我希望能够使用 Android 版 Google 地图 API 显示两个用户定义的地理点之间的路线。我还希望能够让用户选择显示什么类型的路线,

回答 4 投票 0

在 Google 地图 API 上重新加载标记

这是我的代码(大部分代码来自Google的API页面)。 var 海滩 = [ ['邦迪海滩', -12.890542, 120.274856, 4], ['库吉海滩', -12.923036, 520.259052, 5], ['</desc> <question vote="12"> <p>这是我的代码(大部分代码来自 Google 的 API 页面)。</p> <pre><code>&lt;script&gt; var beaches = [ [&#39;Bondi Beach&#39;, -12.890542, 120.274856, 4], [&#39;Coogee Beach&#39;, -12.923036, 520.259052, 5], [&#39;Cronulla Beach&#39;, -12.028249, 1221.157507, 3], [&#39;Manly Beach&#39;, -12.80010128657071, 1121.28747820854187, 2], [&#39;Maroubra Beach&#39;, -33.950198, 121.259302, 1] ]; function setMarkers(map, locations) { for (var i = 0; i &lt; locations.length; i++) { var beach = locations[i]; var myLatLng = new google.maps.LatLng(beach[1], beach[2]); var marker = new google.maps.Marker({ position: myLatLng, map: map, title: beach[0], zIndex: beach[3] }); } } function initialize() { var mapOptions = { zoom: 3, center: new google.maps.LatLng(38.77417, -9.13417), mapTypeId: google.maps.MapTypeId.SATELLITE } var map = new google.maps.Map(document.getElementById(&#39;map-canvas&#39;), mapOptions); setMarkers(map, beaches); } google.maps.event.addDomListener(window, &#39;load&#39;, initialize); setInterval(function() { setMarkers(map, beaches); }, 5000); &lt;/script&gt; </code></pre> <p>我只想重新加载标记。我尝试使用初始化函数重新加载地图,但它不起作用。然后我尝试使用 setMarkers 函数重新加载,但仍然没有成功......</p> <p>感谢您的帮助。</p> </question> <answer tick="true" vote="42"> <p>你应该做的几件事/我对你的原始代码进行了更改的事情:</p> <ol> <li>为标记使用有效的纬度/经度坐标(例如 1121.28747820854187 不是有效的经度)</li> <li>为您的地图创建一个全局变量(更容易在脚本中引用)</li> <li>创建一个数组来保存标记</li> <li>我为您的标记添加了标记动画 <pre><code>animation: google.maps.Animation.DROP,</code></pre>,以便您可以看到它们何时重新加载,以及用于调用重新加载函数的 <em>重新加载标记</em> 按钮。</li> </ol> <p>基本上你想做的是:</p> <ol> <li>在 <pre><code>setMarkers</code></pre> 函数中创建每个标记</li> <li>将每个标记推入 <pre><code>markers</code></pre> 数组</li> <li>当<em>重新加载</em>标记时,循环遍历标记数组并对每个标记调用<pre><code>setMap(null)</code></pre>以将其从地图中删除</li> <li>完成后,再次调用 <pre><code>setMarkers</code></pre> 重新绘制标记</li> </ol> <p><strong>更新代码:</strong></p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="false"> <div> <pre><code>let map; let markers = []; // Create a marker array to hold your markers const beaches = [ [&#39;Bondi Beach&#39;, 10, 10, 4], [&#39;Coogee Beach&#39;, 10, 11, 5], [&#39;Cronulla Beach&#39;, 10, 12, 3], [&#39;Manly Beach&#39;, 10, 13, 2], [&#39;Maroubra Beach&#39;, 10, 14, 1] ]; function setMarkers(locations) { for (let i = 0; i &lt; locations.length; i++) { let beach = locations[i]; let myLatLng = new google.maps.LatLng(beach[1], beach[2]); const marker = new google.maps.Marker({ position: myLatLng, map: map, animation: google.maps.Animation.DROP, title: beach[0], zIndex: beach[3] }); // Push marker to markers array markers.push(marker); } } function reloadMarkers() { // Loop through markers and set map to null for each for (let i = 0; i &lt; markers.length; i++) { markers[i].setMap(null); } // Reset the markers array markers = []; // Call set markers to re-add markers setMarkers(beaches); } async function initMap() { // Request libraries when needed, not in the script tag. const { Map } = await google.maps.importLibrary(&#34;maps&#34;); map = new Map(document.getElementById(&#34;map-canvas&#34;), { zoom: 5, center: new google.maps.LatLng(10, 12), mapTypeId: google.maps.MapTypeId.SATELLITE }); setMarkers(beaches); // Bind event listener on button to reload markers document.getElementById(&#39;reloadMarkers&#39;).addEventListener(&#39;click&#39;, reloadMarkers); } initMap();</code></pre> <pre><code>#map-canvas { height: 140px; }</code></pre> <pre><code>&lt;div id=&#34;map-canvas&#34;&gt;&lt;/div&gt; &lt;button id=&#34;reloadMarkers&#34;&gt;Reload&lt;/button&gt; &lt;script&gt; (g=&gt;{var h,a,k,p=&#34;The Google Maps JavaScript API&#34;,c=&#34;google&#34;,l=&#34;importLibrary&#34;,q=&#34;__ib__&#34;,m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=&gt;h||(h=new Promise(async(f,n)=&gt;{await (a=m.createElement(&#34;script&#34;));e.set(&#34;libraries&#34;,[...r]+&#34;&#34;);for(k in g)e.set(k.replace(/[A-Z]/g,t=&gt;&#34;_&#34;+t[0].toLowerCase()),g[k]);e.set(&#34;callback&#34;,c+&#34;.maps.&#34;+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=&gt;h=n(Error(p+&#34; could not load.&#34;));a.nonce=m.querySelector(&#34;script[nonce]&#34;)?.nonce||&#34;&#34;;m.head.append(a)}));d[l]?console.warn(p+&#34; only loads once. Ignoring:&#34;,g):d[l]=(f,...n)=&gt;r.add(f)&amp;&amp;u().then(()=&gt;d[l](f,...n))})({ key: &#34;AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&#34;, v: &#34;weekly&#34;, // Use the &#39;v&#39; parameter to indicate the version to use (weekly, beta, alpha, etc.). // Add other bootstrap parameters as needed, using camel case. }); &lt;/script&gt;</code></pre> </div> </div> <p></p> <p><kbd><a href="http://jsfiddle.net/upsidown/p646xmcr/" rel="nofollow noreferrer">JSFiddle 演示</a></kbd></p> </answer> <answer tick="false" vote="3"> <p>要重新加载标记,请在创建时将它们推送到数组中。</p> <p>然后创建一个函数,在其中迭代数组,将标记映射设置为空。之后,擦除阵列。</p> <p><strong>编辑:</strong>我假设,您将在 PHP 上返回具有以下结构的 JSON</p> <pre><code>{ beaches: [ [ &#34;Bondi Beach&#34;, -12.890542, 120.274856, 4 ], [ &#34;Other Beach&#34;, -12.890542, 120.274856, 5 ] ] } </code></pre> <p>我还假设你会使用<a href="http://jquery.com/" rel="nofollow">jQuery</a>(只是为了简化ajax调用和json迭代)</p> <pre><code>&lt;script&gt; var arrMarkers = []; var beaches = [ [&#39;Bondi Beach&#39;, -12.890542, 120.274856, 4], [&#39;Coogee Beach&#39;, -12.923036, 520.259052, 5], [&#39;Cronulla Beach&#39;, -12.028249, 1221.157507, 3], [&#39;Manly Beach&#39;, -12.80010128657071, 1121.28747820854187, 2], [&#39;Maroubra Beach&#39;, -33.950198, 121.259302, 1] ]; function setMarkers(map, locations) { for (var i = 0; i &lt; locations.length; i++) { var beach = locations[i]; var myLatLng = new google.maps.LatLng(beach[1], beach[2]); var marker = new google.maps.Marker({ position: myLatLng, map: map, title: beach[0], zIndex: beach[3] }); arrMarkers.push(marker); } } function initialize() { var mapOptions = { zoom: 3, center: new google.maps.LatLng(38.77417, -9.13417), mapTypeId: google.maps.MapTypeId.SATELLITE } var map = new google.maps.Map(document.getElementById(&#39;map-canvas&#39;), mapOptions); setMarkers(map, beaches); } function removeMarkers(){ var i; for(i=0;i&lt;arrMarkers.length;i++){ arrMarkers[i].setMap(null); } arrMarkers = []; } google.maps.event.addDomListener(window, &#39;load&#39;, initialize); setInterval(function() { updateTheMarkers(); }, 5000); function updateTheMarkers(){ $.ajax({ type: &#34;GET&#34;, url: &#34;/yourphp.php&#34;, success: function (data) { //We remove the old markers removeMarkers(); var jsonObj = $.parseJSON(data), i; beaches =[];//Erasing the beaches array //Adding the new ones for(i=0;i &lt; jsonObj.beaches.length; i++) { beaches.push(jsonObj.beaches[i]); } //Adding them to the map setMarkers(map, beaches); } }); } &lt;/script&gt; </code></pre> <p>基本上,现在,每 5 秒你的 javascript 就会向你的 php 发出一个 ajax 请求,你的 php 将返回一个包含新海滩的更新后的 json,你将删除旧的标记,用新的位置填充数组并生成新的标记。 </p> </answer> <answer tick="false" vote="0"> <p>这可能不是最初的疑问,但要清除地图的标记和其他组件,请在加载地图及其组件之前放置:</p> <pre><code>map.clear (); </code></pre> </answer> <answer tick="false" vote="-1"> <p>即使在将新位置设置为标记后最初将其设置为不可见:</p> <pre><code>markerLcl.setPosition(mLatLng) </code></pre> <p>通过以下方式在新位置重新绘制:</p> <pre><code> markerLcl.setMap(null) markerLcl.setMap(mMap) </code></pre> </answer> </body></html>

回答 0 投票 0

如何更改 Google 地图信息窗口的位置

如标题所示,如何更改如上图所示的信息窗口的位置? 我已按照 Google 的指示进行操作。现在我想改变 infowindows 的位置但不知道...

回答 1 投票 0

离子角度应用程序。谷歌地图API加载问题

我正在开发一个利用 Google 地图 API 的 Ionic Angular 项目。我将 API 脚本直接包含在 index.html 文件中或动态地将其加载到项目中。我特别要求...

回答 1 投票 0

为什么我无法在 Google Map Flutter 上看到存储在 RTDB Firebase 上的其他用户的标记

问题是我只能在 Google 地图上看到自己的标记,而看不到其他用户的标记,即使其他用户数据(即纬度和经度)存储在实时数据库中。 下面你可以...

回答 1 投票 0

如何在谷歌地图上显示多边形所有边的距离

我想显示在谷歌地图上制作的多边形所有边的长度。也许可以在多边形的中心打印多边形的面积 这是显示长度的代码...

回答 1 投票 0

Android动态加载标记最佳策略

我有一个带有谷歌地图的Android地图,它可以根据用户屏幕位置从服务器动态加载标记。例如,如果用户移动地图,我只需向服务器发出请求,我就

回答 3 投票 0

如何使用 firebase 和 flutter 运行任务后台服务

我正在开发每 15 分钟获取当前地理位置并发送数据以保存在 firebase 数据库中的项目,此任务应该在应用程序关闭或终止时在后台运行,我的专业人士...

回答 1 投票 0

IOS 拒绝世博位置追踪

我尝试在 IOS 上跟踪用户位置,但总是被拒绝。我已在 app.json 文件中添加了所有必要的依赖项,但我不断收到相同的错误消息: [未处理

回答 2 投票 0

Google-Maps-API for React

我是 React 新手,在理解与 google 地图 API 相关的代码部分时遇到一些困难。 从“@react-google-maps/api”导入 { GoogleMap, Marker, useLoadScript }; 常量 {

回答 1 投票 0

通过 iPhone 连接到 AT&T 无线网络的 Google 静态地图无法正常工作 [已关闭]

最近,当我的 iPhone 连接到 AT&T 无线网络时,我在检索静态地图时遇到了问题。但是,当我连接到本地 WiFi 时工作正常。 上周日几个小时...

回答 1 投票 0

Google 地图 api 调用未获取数据

const express = require('express'); 常量应用程序 = Express(); const { 客户端 } = require('@googlemaps/google-maps-services-js'); const googleMapsClient = new Client({apiKey:"myGoogleApiKey"...

回答 1 投票 0

Google 地图标记 DROP 动画不一致

我在 Angular 10 中使用谷歌地图 API,我发现切换 DROP 动画存在一些不一致之处。 官方文档上的 JSFiddle 有一个切换弹跳动画的演示。

回答 2 投票 0

Google 地图路线使用 1-2-3 而不是 A-B-C

我在 Google 地图上使用 Google 地图 API。 问题是,它向我显示了整个路径中的几个站点,将它们标记为 A-B-C-D...Z,但我需要将其更改为 1-2-3-4-..99, 这是我...

回答 2 投票 0

点击地图 POI 时,Google Map Api 要素层点击事件不会被触发

我的代码如下 地图 = 新 google.maps.Map(document.getElementById('地图'), { mapTypeId:window.google.maps.MapTypeId.ROADMAP, 禁用默认UI:true,

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.