簡體   English   中英

在Angle 6中使用地理編碼API

[英]Using geocoding API in angular 6

public getLatLongs():Promise<any>{


   let assurance:Promise<any>=new Promise<any>(function(resolve,reject){

  let request=new XMLHttpRequest();

 request.onload=function(){

     if(request.status==200){
          resolve(request.response);
  }else{
   reject(new Error("Cannot fetch data"));
 }

};

   request.onerror=function(){
 reject(new Error("Error in map"));
}


let url='/maps/api/geocode/json?address=Ujjain&key=MyKEY';

request.open("GET",url);
request.send();


});



  return assurance;
}

我的proxy.config.json

{
  "/JobsPortal":{
  "target": "http://localhost:3000",
    "secure": false
  },
   "/upload":{
   "target": "http://localhost:3010",
    "secure": false
  },
  "/maps/":{
  "target": "https://maps.googleapis.com",
    "secure": false
  }
 }

我正在使用promise來獲取緯度,在角度6中使用GEOCoding API來獲取時間,但是我遇到了錯誤:

http://localhost:4200/maps/api/geocode/json?address=Ujjain&key='MyKEY' 404 (Not Found)
scheduleTask @ zone.js:2969
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:407
onScheduleTask @ zone.js:297
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:401
push../node_modules/zone.js/dist/zone.js.Zone.scheduleTask @ zone.js:232
push../node_modules/zone.js/dist/zone.js.Zone.scheduleMacroTask @ zone.js:255
scheduleMacroTaskWithCurrentZone @ zone.js:1114
(anonymous) @ zone.js:3001
proto.(anonymous function) @ zone.js:1394
(anonymous) @ map.service.ts:36
ZoneAwarePromise @ zone.js:891
push../src/app/services/map.service.ts.MapService.getLatLongs @ map.service.ts:14
push../src/app/map-component/map-component.component.ts.MapComponentComponent.getData @ map-component.component.ts:29
MapComponentComponent @ map-component.component.ts:19
createClass @ core.js:9093
createDirectiveInstance @ core.js:8978
createViewNodes @ core.js:10198
callViewAction @ core.js:10514
execComponentViewsAction @ core.js:10433
createViewNodes @ core.js:10226
createRootView @ core.js:10112
callWithDebugContext @ core.js:11143
debugCreateRootView @ core.js:10630
push../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create @ core.js:8458
push../node_modules/@angular/core/fesm5/core.js.ComponentFactoryBoundToModule.create @ core.js:3262
push../node_modules/@angular/core/fesm5/core.js.ApplicationRef.bootstrap @ core.js:4483
(anonymous) @ core.js:4291
push../node_modules/@angular/core/fesm5/core.js.PlatformRef._moduleDoBootstrap @ core.js:4291
(anonymous) @ core.js:4257
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:388
onInvoke @ core.js:3757
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:387
push../node_modules/zone.js/dist/zone.js.Zone.run @ zone.js:138
(anonymous) @ zone.js:872
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:421
onInvokeTask @ core.js:3748
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:420
push../node_modules/zone.js/dist/zone.js.Zone.runTask @ zone.js:188
drainMicroTaskQueue @ zone.js:595
Promise.then (async)
scheduleMicroTask @ zone.js:578
push../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:410
push../node_modules/zone.js/dist/zone.js.Zone.scheduleTask @ zone.js:232
push../node_modules/zone.js/dist/zone.js.Zone.scheduleMicroTask @ zone.js:252
scheduleResolveOrReject @ zone.js:862
ZoneAwarePromise.then @ zone.js:962
push../node_modules/@angular/core/fesm5/core.js.PlatformRef.bootstrapModule @ core.js:4286
./src/main.ts @ main.ts:11
__webpack_require__ @ bootstrap:76
0 @ main.ts:12
__webpack_require__ @ bootstrap:76
checkDeferredModules @ bootstrap:43
webpackJsonpCallback @ bootstrap:30
(anonymous) @ main.js:1
map-component.component.ts:34 Error: Cannot fetch data
    at XMLHttpRequest.request.onload [as __zone_symbol__ON_PROPERTYload] (map.service.ts:23)
    at XMLHttpRequest.wrapFn (zone.js:1188)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
    at Object.onInvokeTask (core.js:3748)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
    at ZoneTask.push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (zone.js:496)
    at invokeTask (zone.js:1540)
    at XMLHttpRequest.globalZoneAwareCallback (zone.js:1566)

Ps =我啟用了有效的密鑰並啟用了Google地理編碼API,當我在瀏覽器中經過網址時收到json,但使用Google API時卻收到404錯誤。 其他代理工作正常,請幫幫我

您的proxy.config.json文件未更新您的URL

let url='/maps/api/geocode/json?address=Ujjain&key=MyKEY';

然后只有它獲取默認路徑(本地主機路徑)

http://localhost:4200/maps/api/geocode/json?address=Ujjain&key='MyKEY' 

只需嘗試改變這一點,

let url='https://maps.googleapis.com/maps/api/geocode/json?address=Ujjain&key=MyKEY'

確保您必須在MyKEY中傳遞實際密鑰。

我相信問題出在道路上,請嘗試一下。希望它能解決您的問題。 讓我們嘗試一次,讓我知道是否有任何錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM