NativeScript Google-Places API -> как использовать? - PullRequest
0 голосов
/ 04 сентября 2018

Я работаю над приложением, которое использует Google-Maps-API , и я хочу добавить search-box поле, которое использует Google-Places-API для автозаполнения того, что набрал пользователь до сих пор а затем сохранить значение выбранного элемента.

https://github.com/jonny720/do-here-client

Итак, я получил свой Google-Places-API ключ, и я действительно не знаю, где его разместить и как реализовать этот API.

Google-Maps-API помещен в androidMAnifest.xml и работает нормально.

<meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/nativescript_google_maps_api_key"
            />

Теперь, где я на самом деле реализую Google-Places-API и где мне нужно разместить ключ?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Хорошо, вот что я сделал, и это сработало:

Я создаю PlacesService, и это код:

autoCompleteUrl = 'https://maps.googleapis.com/maps/api/place/autocomplete/xml?input=';
autoCompleteUrl2 = '&key=API_KEY'


urlReq='https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=';
urlreq2 = '&inputtype=textquery&fields=formatted_address,name,geometry&key=API_KEY' 


newPlace: any;
constructor(private http :HttpClient){}

auto(typed):any{
    if (typed){
        console.log("got to func",typed)
        return this.http.get(this.autoCompleteUrl+typed+this.autoCompleteUrl2);
    } 
}


findPlace(place):any {
        // return this.http.get(this.urlReq+place+this.urlreq2);
        this.http.get(this.urlReq+place+this.urlreq2)
        .toPromise().then(res => {
            this.newPlace = JSON.stringify(res);
            console.log("#########", this.newPlace); 
        });

}

Теперь я получаю объект JSON, который выглядит следующим образом:

[{"candidates":[{"formatted_address":"United States","geometry":{"location":{"lat":37.09024,"lng":-95.712891},"viewport":{"northeast":{"lat":49.38,"lng":-66.94},"southwest":{"lat":25.82,"lng":-124.39}}},"name":"United States"}],"debug_log":{"line":[]},"status":"OK"}, {"candidates":[{"formatted_address":"United States","geometry":{"location":{"lat":37.09024,"lng":-95.712891},"viewport":{"northeast":{"lat":49.38,"lng":-66.94},"southwest":{"lat":25.82,"lng":-124.39}}},"name":"United States"}],"debug_log":{"line":[]},"status":"OK"}]

Но как мне разбить этот объект? я хочу взять только Name и geometry свойство.

спасибо!

0 голосов
/ 05 сентября 2018

Места и Maps-utils плагины уже доступны. Вы можете использовать их. Вы пробовали их?

...