Commit 9de08b4a authored by Yasiru-Deshan's avatar Yasiru-Deshan

Search location function added

parent c8715220
import 'package:http/http.dart' as http;
import 'dart:convert' as convert;
class LocationService{
final String key = 'AIzaSyABS88malpXXr__XRF8OhZWE3m6O9hdjsU';
......@@ -5,5 +8,23 @@ class LocationService{
final String url = 'https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=$input&inputtype=textquery&key=$key';
var response = await http.get(Uri.parse(url));
var json = convert.jsonDecode(response.body);
var placeId = json['candidates'][0]['place_id'] as String;
print(placeId);
return placeId;
}
Future<Map<String, dynamic>> getPlace(String input) async{
final placeId = await getPlaceId(input);
final String url = 'https://maps.googleapis.com/maps/api/place/details/json?place_id=$placeId&key=$key';
var response = await http.get(Uri.parse(url));
var json = convert.jsonDecode(response.body);
var results = json['result'] as Map<String, dynamic>;
print(results);
return results;
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:look_ai/location_service.dart';
void main() => runApp(MyApp());
......@@ -89,7 +90,10 @@ class MapSampleState extends State<MapSample> {
},
))) ,
IconButton(
onPressed: (){},
onPressed: () async{
var place = await LocationService().getPlace(_searchController.text);
_goToPlace(place);
},
icon: Icon(Icons.search),),
],),
Expanded(
......@@ -119,6 +123,17 @@ class MapSampleState extends State<MapSample> {
);
}
Future<void> _goToPlace(Map<String, dynamic> place) async {
final double lat = place['geometry']['location']['lat'];
final double lng = place['geometry']['location']['lng'];
final GoogleMapController controller = await _controller.future;
controller.animateCamera(CameraUpdate.newCameraPosition(
CameraPosition(target: LatLng(lat, lng), zoom: 12),
));
}
Future<void> _goToTheLake() async {
final GoogleMapController controller = await _controller.future;
controller.animateCamera(CameraUpdate.newCameraPosition(_kLake));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment