Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Autocomplete input component and directive for google-maps built with angular and material design |

License

NotificationsYou must be signed in to change notification settings

prochnost/google-maps-autocomplete

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

angular-material-extensions's logo

@angular-material-extensions/google-maps-autocomplete - Autocomplete input component for google-maps built with angular material design

npm versionnpm demoJoin the chat at https://gitter.im/angular-material-extensions/LobbyCoverage StatusBuild StatusCircleCI branchGreenkeeper BadgelicenseAwesome

@angular-material-extensions/google-maps-autocomplete

@angular-material-extensions/google-maps-autocomplete

Please use lib v8 only with angular v15

Built by and for developers ❤️

Do you have any question or suggestion ? Please do not hesitate to contact us!Alternatively, provide a PR | open an appropriateissuehere

If did you like this project, supportangular-material-extensionsby starring ⭐ and sharing it 📢

Table of Contents

View all the directives and components in actionathttps://angular-material-extensions.github.io/google-maps-autocomplete

  • Angular (requires Angular latest | we are using already v16 ;)

optional

npm i -D @types/googlemaps

1. Install viang add. (Recommended)

If Angular Material Design is not setup, justrunng add @angular/materiallearn more

Now add the library via theangular schematics and everything will be setup for you

ng add @angular-material-extensions/google-maps-autocomplete

2. Install vianpm. (Alternative)

Now install@angular-material-extensions/google-maps-autocomplete via:

npm install --save @angular-material-extensions/google-maps-autocomplete

for the ui input component, please consider installing the following packages

ng add @angular/material

Once installed you need to import the main module:

import{MatGoogleMapsAutocompleteModule}from'@angular-material-extensions/google-maps-autocomplete';

The only remaining part is to list the imported module in your application module. The exact method will be slightlydifferent for the root (top-level) module for which you should end up with the code similar to (notice MatGoogleMapsAutocompleteModule.forRoot()):

import{MatGoogleMapsAutocompleteModule}from'@angular-material-extensions/google-maps-autocomplete';@NgModule({declarations:[AppComponent, ...],imports:[MatGoogleMapsAutocompleteModule.forRoot('YOUR_GOOGLE_MAPS_API_KEY'), ...],bootstrap:[AppComponent]})exportclassAppModule{}

Other modules in your application can simply importMatGoogleMapsAutocompleteModule:

import{MatGoogleMapsAutocompleteModule}from'@angular-material-extensions/google-maps-autocomplete';@NgModule({declarations:[OtherComponent, ...],imports:[MatGoogleMapsAutocompleteModule, ...],})exportclassOtherModule{}

As directive

addmatGoogleMapsAutocomplete to your target html input element to enable the google maps autocomplete api as feature

<mat-form-field><mat-label>Address<<usingthedirective>></mat-label><inputmatInputmatGoogleMapsAutocomplete[country]="de"(onAutocompleteSelected)="onAutocompleteSelected($event)"(onLocationSelected)="onLocationSelected($event)"></mat-form-field>

As components

or alternatively usemat-google-maps-auto-complete, the UI wrapper

addmat-google-maps-auto-complete element to your template

mat-google-maps-auto-complete

<mat-google-maps-autocomplete[appearance]="appearance.OUTLINE"(onAutocompleteSelected)="onAutocompleteSelected($event)"(onLocationSelected)="onLocationSelected($event)"></mat-google-maps-autocomplete>

A customizedmat-google-maps-autocomplete

<mat-google-maps-autocompletecountry="us"type="address"(onAutocompleteSelected)="onAutocompleteSelected($event)"(onLocationSelected)="onLocationSelected($event)"></mat-google-maps-autocomplete>

combine the result of themat-google-maps-autocomplete with a google map instance

<divclass="container"fxLayout="column"fxLayoutAlign="center"><divfxFlexfxFlexAlign="center"class="autocomplete-container"[ngStyle.xs]="{'min-width.%': 100}"[ngStyle.sm]="{'width.%': 70}"><mat-google-maps-autocomplete(onAutocompleteSelected)="onAutocompleteSelected($event)"(onLocationSelected)="onLocationSelected($event)"(onGermanAddressMapped)="onGermanAddressMapped($event)"></mat-google-maps-autocomplete></div></div>

in your component, the code will be similar to -->

import{Component,OnInit,ViewEncapsulation}from'@angular/core';import{Title}from'@angular/platform-browser';import{Location,Appearance,GermanAddress}from'@angular-material-extensions/google-maps-autocomplete';import{}from'@types/googlemaps';importPlaceResult=google.maps.places.PlaceResult;@Component({selector:'app-home',templateUrl:'./home.component.html',styleUrls:['./home.component.scss'],encapsulation:ViewEncapsulation.None,})exportclassHomeComponentimplementsOnInit{publicappearance=Appearance;publiczoom:number;publiclatitude:number;publiclongitude:number;publicselectedAddress:PlaceResult;constructor(privatetitleService:Title){}ngOnInit(){this.titleService.setTitle('Home | @angular-material-extensions/google-maps-autocomplete');this.zoom=10;this.latitude=52.520008;this.longitude=13.404954;this.setCurrentPosition();}privatesetCurrentPosition(){if('geolocation'innavigator){navigator.geolocation.getCurrentPosition((position)=>{this.latitude=position.coords.latitude;this.longitude=position.coords.longitude;this.zoom=12;});}}onAutocompleteSelected(result:PlaceResult){console.log('onAutocompleteSelected: ',result);}onLocationSelected(location:Location){console.log('onLocationSelected: ',location);this.latitude=location.latitude;this.longitude=location.longitude;}onGermanAddressMapped($event:GermanAddress){console.log('onGermanAddressMapped',$event);}}

Reactive Forms Example

<form[formGroup]="addressFormGroup"><mat-search-google-maps-autocompleteformControlName="address"></mat-search-google-maps-autocomplete>  // OR<mat-google-maps-autocompleteformControlName="address"></mat-google-maps-autocomplete></form>
import{Component,OnInit}from'@angular/core';import{FormControl,FormGroup}from'@angular/forms';@Component({selector:'app-root',templateUrl:'./app.component.html',styleUrls:['./app.component.scss']})exportclassAppComponentimplementsOnInit{addressFormGroup:FormGroup;ngOnInit():void{this.addressFormGroup=newFormGroup({address:newFormControl(),});this.addressFormGroup.get('address').valueChanges.subscribe(value=>console.log('value changed',value))}}

API - for more info please visit the official documentationMaps JavaScript API

matGoogleMapsAutocomplete

optionbindtypedefaultdescription
valueInput()PlaceResult ;-
addressInput()PlaceResultstring;-
countryInput()stringstring[];-
placeIdOnlyInput()boolean-can be used to instruct the Autocomplete widget to retrieve only Place IDs. On calling getPlace() on the Autocomplete object, the PlaceResult made available will only have the place id, types and name properties set. You can use the returned place ID with calls to the Places, Geocoding, Directions or Distance Matrix services.
strictBoundsInput()boolean-is a boolean specifying whether the API must return only those places that are strictly within the region defined by the given bounds. The API does not return results outside this region even if they match the user input.
typesInput()string[]-An array of types specifies an explicit type or a type collection, as listed in the supported types below. If nothing is specified, all types are returned. In general only a single type is allowed. The exception is that you can safely mix the geocode and establishment types, but note that this will have the same effect as specifying no types. Supported types are listed below.
typeInput()string-
autoCompleteOptionsInput()AutocompleteOptions-all above inputs in one object! The passed data to this object will be merged with the input if they exists
onChangeOutput()PlaceResultstringnull
onAutocompleteSelectedOutput()PlaceResult-the event will be fired when a place has been selected via the google maps autocomplete component
onGermanAddressMappedOutput()GermanAddress-the event will be fired when a place has been selected and mapped to the german address interface
onLocationSelectedOutput()Location-the event will be fired when a place has been selected via the google maps autocomplete component

Supported Types

typedescription
geocodeinstructs the Places service to return only geocoding results, rather than business results.
addressinstructs the Places service to return only geocoding results with a precise address.
establishmentinstructs the Places service to return only business results.
regionsinstructs the Places service to return any result matching the following types: locality, sublocality, postal_code, country, administrative_area1, administrative_area2
citiesinstructs the Places service to return results that match either locality or administrative_area3.

mat-google-maps-autocomplete

everything included inmatGoogleMapsAutocomplete + the following

optionbindtypedefaultdescription
addressLabelTextInput()string;Address using the componentself explanatory
placeholderTextInput()string;Please enter the addressself explanatory
requiredErrorTextInput()string;The address is requiredself explanatory
invalidErrorTextInput()string;The address is not validself explanatory
appearanceInput()Appearancestring;Appearance.STANDARD

mat-search-google-maps-autocomplete

optionbindtypedefaultdescription
searchBarAppearanceInput()Appearancestring;Appearance.STANDARD
appearanceInput()Appearancestring;Appearance.STANDARD
searchAddressLabelInput()string;Search Addressinput label
streetNameLabelInput()string;Streetinput label
streetNumberLabelInput()string;Nr.input label
postalCodeLabelInput()string;PLZinput label
vicinityLabelInput()string;Localityinput label
localityLabelInput()string;Localityinput label
showVicinityInput()boolean;falseinput label - whether to display the vecinity
readonlyInput()boolean;falsereadonly input
disableSearchInput()boolean;falsedisabled users to search a place
valueInput()GermanAddress;-the initial value of the component
countryInput()stringstring[];-
placeIdOnlyInput()boolean-can be used to instruct the Autocomplete widget to retrieve only Place IDs. On calling getPlace() on the Autocomplete object, the PlaceResult made available will only have the place id, types and name properties set. You can use the returned place ID with calls to the Places, Geocoding, Directions or Distance Matrix services.
strictBoundsInput()boolean-is a boolean specifying whether the API must return only those places that are strictly within the region defined by the given bounds. The API does not return results outside this region even if they match the user input.
typesInput()string[]-An array of types specifies an explicit type or a type collection, as listed in the supported types below. If nothing is specified, all types are returned. In general only a single type is allowed. The exception is that you can safely mix the geocode and establishment types, but note that this will have the same effect as specifying no types. Supported types are listed below.
typeInput()string-
onGermanAddressMappedOutput()EventEmitterstring;Appearance.STANDARD

@angular-material-extensions/google-maps-autocomplete

<mat-card><mat-card-title>Auto Parse Address</mat-card-title><mat-card-content><!-- #######   here we go !! ######--><mat-search-google-maps-autocompleteappearance="outline"country="de"(onGermanAddressMapped)="onGermanAddressMapped($event)">></mat-search-google-maps-autocomplete></mat-card-content></mat-card>
import{Appearance,GermanAddress,Location}from'@angular-material-extensions/google-maps-autocomplete';onGermanAddressMapped($event;:GermanAddress;){console.log('onGermanAddressMapped',$event);}

Please checkout the fulldocumentationhereor follow theofficialtutorial

$ git clone https://github.com/angular-material-extensions/google-maps-autocomplete.git
  • link the@angular-material-extensions/google-maps-autocomplete package
$ gulp link
  • navigate to the demo app directory, install the dependencies and serve the app
$cd demo&& npm i&& npm start
  • the app is now hosted byhttp://localhost:4200/
  1. clone thisrepo
  2. Install the dependencies by runningnpm i
  3. go to lib directory underprojects/angular-material-extensions/google-maps-autocomplete
  4. build the librarynpm run build


Built by and for developers ❤️ we will help you 👊


Who is using ngx-mailto? Awesome apps?

  1. Nahaus.de - Digitale und automatisierte Immobilienverwaltung Software für private Vermieter und Hausverwaltungen

Are you missing your project or you app? PR me to publish it on the README


License

Copyright (c) 2019-2024Anthony Nahas. Licensed under the MIT License (MIT)

angular-material-extensions's logo

About

Autocomplete input component and directive for google-maps built with angular and material design |

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript61.3%
  • HTML34.1%
  • JavaScript4.3%
  • SCSS0.3%

[8]ページ先頭

©2009-2025 Movatter.jp