2016-12-31 11 views
0

この問題は明らかに重複していますが、HTMLコードが含まれていない問題を解決できません。私はノードjsをボットに使用するようにコーディングしていますので、すべてがjavascript内で発生します。 StreetViewServiceを使用する必要がありますが、Google APIを呼び出す方法がわからない場合や、モジュールが必要な場合HTMLなしでGoogle APIを呼び出すと「google is defined」と表示される

var request = require('request'); 

function initialize() { 
    var latLong = {lat: -33.867386, lng: 151.195767}; 
    var streetviewService = new google.maps.StreetViewLocationRequest(); 
    streetviewService.getPanorama(
    {location: latLong, 
    preference: NEAREST, 
    radius: 200, 
    source: OUTDOOR}, 
    function(streetViewPanoramaData, status) { 
     if (status === google.maps.StreetViewStatus.OK) { 
     newLatLng = streetViewPanoramaData.location.latLng; 
     } 
    }); 
    } 

    nearestStreetViewUrl = 'https://maps.googleapis.com/maps/api/js?key='+ process.env.GoogleApiKey + '&callback=' +initialize(); 
    request(nearestStreetViewUrl, function (error, response, body) { 
if (!error && response.statusCode == 200) { 
    console.log(body); 
    // do something 
    } 
}); 

このコードでは、「google is not defined」というエラーが表示されます。私はAPIを正しく呼んでいないと思っています。あなたが実際のinitialize()メソッドを実行し、文字列の末尾に結果を貼り付けている次の行で

+0

最初にすること:コードを正しくインデントし、すべての中括弧に一致させます。サンプルコードが構文エラーを投げたときに何が間違っているかを正確に伝えるのは難しいです。 – Tomalak

+0

@tomalak私はコードを編集しました。申し訳ありませんが、私は正しくコピー&ペーストしませんでした。しかし問題はまだ有効です。 –

答えて

0

nearestStreetViewUrl = 'https://maps.googleapis.com/maps/api/js?key='+ process.env.GoogleApiKey + '&callback=' +initialize(); 

あなたはコールバッククエリパラメータの値としてメソッド名を設定する必要があり、そうですね:

これで少なくとも1歩はさらに進んでいきます。

+0

これは私が最初に試していたものですが、(コンソールが内部関数のアラートを表示していないために)関数が全く実行されていないと考えました。それはまだかなり働いていない。私のコールバック機能は大丈夫だと思いますか?実行後にパノデータにアクセスできません –

+0

Google Maps APIがnode.jsで動作する方法にはあまり慣れていませんたぶんこのnpmパッケージ(https://www.npmjs.com/package/google-maps)を使用するか、http://stackoverflow.com/questions/15955963/is-it-possible-to- google-maps-api-library-on-the-node-js-server-side – Theodorus

+0

ご利用いただきありがとうございます@テオドラス! google-mapsモジュールはブラウザ専用ですので、動作させるにはいくつかの追加コードが必要です –

関連する問題