Я реализовал карту с местом автозаполнения, и маркер работает нормально, когда я перетаскиваю маркер в другое место, он дает мне значения широты и долготы. Теперь вопрос в том, хочу ли я название того места, куда я перетащил маркер, помните, что у меня естьуспешно достигнуто значение lat lng, но название еще не достигнуто.
MapMarker: google.maps.Marker;
selectPlace(place) {
this.places = [];
let GMapMarker = new google.maps.Marker({
position: new google.maps.LatLng(0, 0),
map: this.map,
title: "Temp",
icon: 'https://chart.apis.google.com/chart?
chst=d_map_pin_letter&chld=%E2%80%A2%7C00FF00',
draggable: true,
visible: true
});
let location = {
lat: null,
lng: null,
name: place.name
};
let tempMap = this.map;
this.placesService.getDetails({ placeId: place.place_id }, (details) =>
{
try {
this.zone.run(() => {
console.log('zone executed')
location.name = details.name;
location.lat = details.geometry.location.lat();
location.lng = details.geometry.location.lng();
this.saveDisabled = false;
console.log("This is" + GMapMarker);
GMapMarker.setPosition(new google.maps.LatLng(location.lat,
location.lng));
GMapMarker.setVisible(true);
GMapMarker.setTitle(location.name)
this.map.controls.push(GMapMarker);
//tempMap.setCenter(new google.maps.LatLng(43, 76));
this.map.setCenter({ lat: location.lat, lng: location.lng
});
this.location = location;
//this.api.getLocation = this.location;
this.MapMarker = GMapMarker;
console.log(this.location);
});
} catch (error) {
console.log(error.message)
}
});
}
searchPlace() {
this.saveDisabled = true;
if (this.query.length > 0 && !this.searchDisabled) {
let config = {
types: ['geocode'],
input: this.query
}
this.autocompleteService.getPlacePredictions(config, (predictions,
status) => {
if (status == google.maps.places.PlacesServiceStatus.OK &&
predictions[0] != null) {
this.places = [];
predictions.forEach((prediction) => {
this.places.push(prediction);
});
}
});
} else {
this.places = [];
}
}
save() {
this.api.getLocation = {
name: this.MapMarker.getTitle(),
lat: this.MapMarker.getPosition().lat(),
lng: this.MapMarker.getPosition().lng()
};
this.viewCtrl.dismiss();//this.location
}