This code shows multiple marker in google map.
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>
<script src="https://code.angularjs.org/1.4.5/angular.js"></script>
<script src="https://rawgit.com/allenhwkim/angularjs-google-maps/master/build/scripts/ng-map.js"></script>
<div ng-app="mapApp" ng-controller="mapController">
<map zoom-to-include-markers="true" style="display:block; width:900px; height:500px;">
<marker ng-repeat="pin in markerData" position="{{pin.latitude}},{{pin.longitude}}" title="{{pin.title}}" on-click="showDetail(pin)"></marker>
<info-window id="foo-iw">
<div ng-non-bindable="">
<h1>{{currentPin.title}}</h1><br/>
<a href="{{currentPin.url}}">Click Here</a>
</div>
</info-window>
</map>
</div>
<script>
angular.module('mapApp', ['ngMap'])
.controller('mapController', function (NgMap, $scope, $q, $log) {
NgMap.getMap().then(function(map) {
$scope.map = map;
//$scope.map.setZoom(13);
var latlng = new google.maps.LatLng(37.0902, -122.636652);
$scope.map.setCenter(latlng);
});
$scope.currentPin = {title: "",url:""};
$scope.markerData = [];
$scope.cityMetaData = [];
$scope.getCityInfo = function (country) {
$scope.markerData = [];
var data = [
{ cityName: ' Petaluma, CA, USA','url':'https://www.flipkart.com/' },
{ cityName: ' Jackson Heights, Queens, NY, USA','url':'https://www.flipkart.com/' },
{ cityName: ' UNICEF 6 Fairbridge Avenue Belgravia, Harare, Zimbabwe','url':'https://www.flipkart.com/' },
];
data.forEach(function (item) {
var cityData = item;
$scope.cityMetaData.push(cityData);
$scope.addressMarker(cityData);
});
}
$scope.showDetail = function (e, pin) {
$scope.currentPin = pin;
$scope.map.showInfoWindow('foo-iw', this);
};
$scope.hideDetail = function() {
$scope.map.hideInfoWindow('foo-iw');
};
$scope.addressMarker = function (cityItem) {
var deferred = $q.defer();
var address = cityItem.cityName;
var url = cityItem.url;
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
'address': address
}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
$scope.$apply(function() {
$scope.markerData.push({
"latitude": results[0].geometry.location.lat(),
"longitude": results[0].geometry.location.lng(),
"title": results[0].formatted_address
,"url": url
});
});
} else {
$log.info('Geocode was not successful for the following reason:' + status);
}
});
}
$scope.getCityInfo();
});
</script>