我有一个纬度和经度:"-27.0000,133.0000"
.我希望根据它制作一个地图.
我试过去看看这个链接
https://maps.googleapis.com/maps/api/geocode/json?latlng=-27.0000,133.0000&key=******
我一直在浏览器上收到此错误
{
"error_message" : "This API project is not authorized to use this API. Please ensure that this API is activated in the APIs Console: Learn more: https://code.google.com/apis/console",
"results" : [],
"status" : "REQUEST_DENIED"
}
Run Code Online (Sandbox Code Playgroud)
但我想我已经启用了这个API.我登录到我的Google控制台,然后仔细检查.
当我去: https://console.developers.google.com/project/75423435770063/apiui/apis/enabled
我知道了 :
启用地理编码+地理定位.
我现在有点卡住了.我在这里错过了什么吗?
我正在构建一个Android应用程序,它将跟踪用户的地理位置并在地图上绘制他们的路线.
我使用的是谷歌播放服务的位置API,如所描述这里.
我的应用程序需要获得ACCESS_FINE_LOCATION
许可才是直观的,我将其放入清单中:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)
我还需要获得ACCESS_COARSE_LOCATION
许可吗?我需要粗略位置的用例是什么?
android android-location android-permissions google-play-services google-geolocation
出于某种原因突然在调用时navigator.geolocation.getCurrentPosition()
我收到此错误:
Network location provider at 'https://www.googleapis.com/' : Returned error code 403.
它曾经在昨天工作得很好!他们的服务器可以有什么?
我的android模拟器有问题.当我关闭并重新打开我的应用时,该位置不会自动发送.我必须进入扩展控件 - >位置,然后单击Ionic Geolocation getCurrentPosition函数的"发送"按钮来接收它.
当我启动Android模拟器并且第一次打开应用程序时,这不是必需的.知道如何自动发送位置无论如何?
android geolocation android-emulator google-geolocation ionic-framework
我正在尝试使用 HTML 地理定位来获取我的位置。有趣的是,它一直工作得非常出色,直到它停止工作的某个看似随机的点。现在我得到的是带有消息的错误回调:
Unknown error acquiring position
Run Code Online (Sandbox Code Playgroud)
这发生在我第一次开始开发应用程序的那天。它是一个在 Node/Express 中构建的 Web 应用程序。我使用的浏览器是 Firefox v53 64 位。
位置是允许的,我还尝试了一个我在网上找到的修复方法,它涉及到 about:config 并geo.wifi.uri
从以下位置更改:
https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_API_KEY%
Run Code Online (Sandbox Code Playgroud)
到
https://www.googleapis.com/geolocation/v1/geolocate?key=test
Run Code Online (Sandbox Code Playgroud)
这对我不起作用。
然而,这确实适用于我的手机 Firefox 应用程序,但不适用于 Google Chrome 应用程序。
这是一个示例代码片段:
const geo = navigator.geolocation;
geo.getCurrentPosition(success, failure);
function success(position) {
lat = position.coords.latitude;
lng = position.coords.longitude;
$('#coords').val(lat + ',' + lng);
mapView.setCenter(ol.proj.fromLonLat([lng, lat]));
}
function failure(error) {
console.log(error.message);
}
Run Code Online (Sandbox Code Playgroud)
完整页面:https : //github.com/ThriceGood/Spots/blob/master/views/index.html
任何人都可以对这个问题有所了解吗?
我已经实现了geoFence api,一切都运行良好.但是有一些问题,我想对我的困惑做更多的澄清.
以下是一些混淆和问题:
我希望我的用户在进入地理围栏区域时收到通知.我按照指南实现了GeofenceTransitionsIntentService,但是当应用程序处于后台时它不会触发转换.我该怎么办?
GeoFence过期时间:很明显,如果我们进入Never,它不会过期,但我对时间感到困惑.例如,如果我将其设置为10分钟,那究竟是做什么的?地理围栏是否会在创建后的给定时间后到期,或者当用户到达该位置时会到期,然后计时器将启动?当用户到达那里时,我们如何让地理围栏过期.
Google如何跟踪我们?地理围栏实际上如何运作?我们没有发送我们的位置,那么它现在正在跟踪?当我们添加地理围栏然后在到达那个地方时通知我们,它是否开始跟踪我们?
请告诉我并讨论这些混淆,特别是关于它在应用程序关闭或销毁时工作的困惑.
我有以下代码使用Ionic Native Geolocation:
import { Geolocation } from 'ionic-native';
this.platform.ready().then(() => {
alert('loadMap about to getCurrentPosition');
Geolocation.getCurrentPosition(options).then((position) => {
alert('loadMap getCurrentPosition');
let latLng: google.maps.LatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
bound.extend(latLng);
this.load(bound);
});
});
Run Code Online (Sandbox Code Playgroud)
当我ionic serve
在浏览器中运行它时,或者我构建它并在iOS Simulator
(Xcode
)上运行它时,它可以工作.但是,当我构建它Android
并尝试运行它时,第一个警报被触发,但不是第二个.
这Android
仅仅意味着,Geolocation.getCurrentPosition...
不起作用.
我确实有另一个可以渲染地图的页面this.map = new google.maps.Map(htmlElement, mapOptions);
,所以看起来问题在于获取当前位置.当我安装应用程序时,我确实得到了这条消息:
Run Code Online (Sandbox Code Playgroud)Allow AppName to access the device's location? DENY ALLOW
我点击了Allow
.
有没有人知道我做错了什么,或者Android安装和构建过程中是否有一些缺失的步骤?
谢谢
请帮我解决这个问题,
地理定位插件不适用于某些 android 设备。它在不同的 Android 手机上进行了测试,以识别地图问题上的当前位置,发现以下结果:
============ 我已经测试了这几台设备 ==========
酷派3600I | 安卓 6.0.1 | 不工作
红米笔记4 | 安卓 7、MIUI 9 | 不工作
摩托克 3 | 安卓 6 | 不工作
红米笔记4 | 安卓 7、MIUI 9 | 不工作
红米4 | 安卓 7.1.2,MIUI 9.1 | 在职的
摩托 G4 Plus | 安卓 7.0 | 在职的
米注3 | 安卓 6+,MIUI 8+ | 在职的
荣誉冬青2加| | 在职的
三星J7 | | 在职的
摩托克 3 | | 在职的
GetLatLong(){
this.platform.ready().then(() => {
var myoption = {
timeout:5000,
enableHighAccuracy:true …
Run Code Online (Sandbox Code Playgroud) 我在广泛阅读谷歌推荐的方法后问这个问题,但我对所有这些方法都有问题,让我解释一下情况。
我使用地理定位和地理编码 API 的组合来了解大致的状态位置,然后显示相关内容。显然需要从浏览器调用地理定位 API 才能获得用户的适当地理定位。Google 为此 API 提供了基于 HTTP Referrer 的限制。我知道有人可以轻松欺骗引用者并使用相同的 API 密钥进行调用。即使谷歌推荐了这个,我也没有看到巨大的优势。
另一方面,Google 不允许 HTTP Referrer 用于地理编码 API,但它允许用于 MAPS JavaScript API。但同样,如果您不使用 Google 地图,那么使用该 API 违反了 Google 的条款。现在 google 建议将使用地理编码 Web 服务 API 的代码移到后端,以便您的密钥得到保护。但由于最终我需要将结果交付给可公开访问的前端 Web 应用程序,并且我只能进行基于浏览器的 Ajax 调用来首先获取地理定位以提供给地理编码,因此我最终需要进行 Ajax 调用以获取我的地理编码信息。然后有人可以轻松地锁定我的端点以搭载并尽可能多地调用地理编码 API。所以对于这样的情况,我想知道什么是理想和安全的处理方式。
当我把下面的网址放到我的浏览器地址栏时,我得到一个"未找到"的文字.
https://www.googleapis.com/geolocation/v1/geolocate?key=API_??KEY
Run Code Online (Sandbox Code Playgroud)
我已经在控制台注册了我的应用程序并获得该应用程序的API密钥.我甚至在控制台上提供了我的信用卡数据并开始了我的试用会员资格.
我期待它给我一些json.但事实并非如此.为什么google不能识别我的api密钥并且给我找不到页面?
geolocation ×4
android ×3
google-api ×2
google-maps ×2
ionic-native ×2
firefox ×1
geocoding ×1
html ×1
ionic2 ×1
javascript ×1
json ×1
navigator ×1