9

मैं angular2-google-maps और कोणीय 2 के नवीनतम संस्करण के साथ काम कर रहा हूं। मैं कुछ स्थानीय मानचित्र घटक कार्यों को अपनी फाइल maps.service.ts में सेवाओं में परिवर्तित करने की कोशिश कर रहा हूं।कोणीय 2 नामस्थान 'google' नहीं ढूंढ सकता

map.component.ts

getGeoLocation(lat: number, lng: number) { 
if (navigator.geolocation) { 
    let geocoder = new google.maps.Geocoder(); 
    let latlng = new google.maps.LatLng(lat, lng); 
    let request = { latLng: latlng }; 
    geocoder.geocode(request, (results, status) => { 
     if (status == google.maps.GeocoderStatus.OK) { 
     let result = results[0]; 
     if (result != null) { 
      this.fillInputs(result.formatted_address); 
     } else { 
      alert("No address available!"); 
     } 
     } 
    }); 
} 
} 

की तरह कुछ में: maps.service.ts

getGeoLocation(lat: number, lng: number): Observable<google.maps.GeocoderResult[]> { 
    let geocoder = new google.maps.Geocoder(); 
    let latlng = new google.maps.LatLng(lat, lng); 
    let request = { latLng: latlng }; 
    return new Observable((observer: Observer<google.maps.GeocoderResult[]>) => { 
     geocoder.geocode({ request }, (
      (results: google.maps.GeocoderResult[], status: google.maps.GeocoderStatus) => { 
       if (status == google.maps.GeocoderStatus.OK) { 
        observer.next(results); 
        observer.complete(); 
       } else { 
        console.log('Geocoding service failed due to: ' +status); 
        observer.error(status); 
       } 
      } 
     )); 
    }); 
} 

मुद्दा मैं हो रही है कि google चर मान्यता प्राप्त नहीं किया जा रहा है जब मैं इस्तेमाल करने की कोशिश उदाहरण के लिए Observer<google.maps.GeocoderResult[]>। मेरे पास सर्विस क्लास के बाहर declare var google: any; भी है।

google मेरे map.componenet.ts में परिवर्तनीय काम करता है लेकिन maps.service.ts में मान्यता प्राप्त नहीं है।

+0

आप 'google' कहां आयात करते हैं? –

+0

@ AppModule भीतर GünterZöchbauer: 'AgmCoreModule.forRoot ({ apiKey: '--key--', पुस्तकालयों: [ 'स्थानों'] })' – Milo

+0

आप एक टाइपप्रति आयात के रूप में अच्छी तरह से 'google' प्रावधान है कि जरूरत है। ऐसा लगता है कि आपने कहीं से कोड कॉपी किया है। क्या आप एक लिंक पोस्ट कर सकते हैं? –

उत्तर

1

मैं अंत में समस्या है, जो मुझे नहीं पता था एक बात थी पता लगा के बाद जोड़े

declare var google: any; 

। मेरा घटक जिसे मैं सेवाओं का संदर्भ दे रहा था, को map.component.ts नाम दिया गया था, जबकि के साथ s के साथ मेरी सेवाओं की फ़ाइल maps.service.ts नामित की गई थी। फ़ाइल बदलने के बाद और import कथन सब ठीक काम किया।

29

मैं एक ही समस्या का सामना करना पड़ रहा था मैंने कोशिश की:

declare var google: any; 

लेकिन यह मेरे लिए काम नहीं किया।
मुझे यह answer मिला और यह मेरे लिए काम किया।
सबसे पहले यह सुनिश्चित कर लें कि आप गूगल के लिए typings स्थापित नक्शे
npm install @types/googlemaps --save --dev

--dev झंडा मान्य नहीं है। npm install @types/googlemaps --save-dev

और फिर अपने नियंत्रक में

import {} from '@types/googlemaps'; 
+1

से संबंधित कुछ भी प्रदान नहीं करता प्रतीत होता है यह मेरे लिए काम करता है ... बस इसे कोणीय 2 में जोड़ना चाहते हैं, मैंने '@ प्रकार/googlemaps' से 'आयात {} जोड़ा; ' '@ ngui/map' से 'आयात {NguiMapModule} के बाद एक ही फ़ाइल;' मेरे साझा.module.ts में। – newman

1

यह मेरे लिए भी काम कर रहा है:

पहले परियोजना के रूट पर cmd में गूगल मैप्स के लिए typings स्थापित

npm install @types/googlemaps --save --dev 

और उसके बाद नीचे अपनी .ts घटक फ़ाइल जोड़ें:

import {} from '@types/googlemaps'; 
संबंधित मुद्दे