Javascript 在ionic中从json创建google地图标记
我想用我的json制作谷歌地图标记:Javascript 在ionic中从json创建google地图标记,javascript,angularjs,json,google-maps,ionic-framework,Javascript,Angularjs,Json,Google Maps,Ionic Framework,我想用我的json制作谷歌地图标记:http://devonder.pe.hu/api/index.php 我是这样使用工厂的 .factory('Markers', function($http) { var markers = []; return { getMarkers: function(){ return $http.get("http://devonder.pe.hu/api/index.php").then(function(response){
http://devonder.pe.hu/api/index.php
我是这样使用工厂的
.factory('Markers', function($http) {
var markers = [];
return {
getMarkers: function(){
return $http.get("http://devonder.pe.hu/api/index.php").then(function(response){
markers = response;
return markers;
});
}
}
})
.controller('mapsctrl', function() {
var myLatLng = {lat: 1.443306, lng: 125.182833};
var myLatLng2 ={lat: 1.440444, lng: 125.117778};
var fasilitas =Markers.getMarkers();
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
center: myLatLng
});
var infoWindow = new google.maps.InfoWindow(), marker, i;
for( i = 0; i < fasilitas.length; i++ ) {
var obj=fasilitas[i];
// var gas[0];
var judul
var position = new google.maps.LatLng(obj.latitude, obj.longitude);
//bounds.extend(position);
//var myLatLngg = {lat: [3][1], lng: [3][2]};
var marker = new google.maps.Marker({
position: position,
map: map,
title: obj.nama,
icon: 'img/marker/'+obj.id_kategori +'.png'
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
var judul = fasilitas[i]
infoWindow.setContent('<h5>'+judul.nama+'</h5><b>Alamat: </b>'+judul.alamat+' <br><b>Buka: </b>'+judul.jadwal_praktek+' <br><b>No Telp: </b>'+judul.no_telp+' ');
infoWindow.open(map, marker);
}
})(marker, i));
}
})
我的控制器是这样的
.factory('Markers', function($http) {
var markers = [];
return {
getMarkers: function(){
return $http.get("http://devonder.pe.hu/api/index.php").then(function(response){
markers = response;
return markers;
});
}
}
})
.controller('mapsctrl', function() {
var myLatLng = {lat: 1.443306, lng: 125.182833};
var myLatLng2 ={lat: 1.440444, lng: 125.117778};
var fasilitas =Markers.getMarkers();
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
center: myLatLng
});
var infoWindow = new google.maps.InfoWindow(), marker, i;
for( i = 0; i < fasilitas.length; i++ ) {
var obj=fasilitas[i];
// var gas[0];
var judul
var position = new google.maps.LatLng(obj.latitude, obj.longitude);
//bounds.extend(position);
//var myLatLngg = {lat: [3][1], lng: [3][2]};
var marker = new google.maps.Marker({
position: position,
map: map,
title: obj.nama,
icon: 'img/marker/'+obj.id_kategori +'.png'
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
var judul = fasilitas[i]
infoWindow.setContent('<h5>'+judul.nama+'</h5><b>Alamat: </b>'+judul.alamat+' <br><b>Buka: </b>'+judul.jadwal_praktek+' <br><b>No Telp: </b>'+judul.no_telp+' ');
infoWindow.open(map, marker);
}
})(marker, i));
}
})
.controller('mapsctrl',function(){
var Mylatng={lat:1.443306,lng:125.182833};
var myLatLng2={lat:1.440444,lng:125.117778};
var fasilitas=Markers.getMarkers();
var map=new google.maps.map(document.getElementById('map'){
缩放:16,
中心:myLatLng
});
var infoWindow=new google.maps.infoWindow(),marker,i;
对于(i=0;iBuka:“+judul.jadwal_praktek+”
No Telp:“+judul.No_Telp+”);
信息窗口。打开(地图、标记);
}
})(marker,i));
}
})
而且它不工作。看起来您正在使用标记工厂,而没有将其注入控制器
app.controller('mapsctrl',['Markers', function(Markers){
var myLatLng = {lat: 1.443306, lng: 125.182833};
var myLatLng2 ={lat: 1.440444, lng: 125.117778};
var fasilitas =Markers.getMarkers();
--- Rest of your code ---
}]);
//或
app.controller('mapsctrl',function(Markers){
var myLatLng = {lat: 1.443306, lng: 125.182833};
var myLatLng2 ={lat: 1.440444, lng: 125.117778};
var fasilitas =Markers.getMarkers();
--- Rest of your code ---
});
控制器请求一个$http
,并在成功时返回值,这是一个承诺,因此您应该像这样使用它
.controller('mapsctrl', function() {
var myLatLng = {lat: 1.443306, lng: 125.182833};
var myLatLng2 ={lat: 1.440444, lng: 125.117778};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
center: myLatLng
});
Markers.getMarkers().then(function(fasilitas){
// var map = new google.maps.Map(document.getElementById('map'), {
// zoom: 16,
// center: myLatLng
// });
var infoWindow = new google.maps.InfoWindow(), marker, i;
for( i = 0; i < fasilitas.length; i++ ) {
var obj=fasilitas[i];
// var gas[0];
var judul
var position = new google.maps.LatLng(obj.latitude, obj.longitude);
//bounds.extend(position);
//var myLatLngg = {lat: [3][1], lng: [3][2]};
var marker = new google.maps.Marker({
position: position,
map: map,
title: obj.nama,
icon: 'img/marker/'+obj.id_kategori +'.png'
// visible : true
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
var judul = fasilitas[i]
infoWindow.setContent('<h5>'+judul.nama+'</h5><b>Alamat: </b>'+judul.alamat+' <br><b>Buka: </b>'+judul.jadwal_praktek+' <br><b>No Telp: </b>'+judul.no_telp+' ');
infoWindow.open(map, marker);
}
})(marker, i));
}
});
});
.controller('mapsctrl',function(){
var Mylatng={lat:1.443306,lng:125.182833};
var myLatLng2={lat:1.440444,lng:125.117778};
var map=new google.maps.map(document.getElementById('map'){
缩放:16,
中心:myLatLng
});
Markers.getMarkers().then(函数(fasilitas){
//var map=new google.maps.map(document.getElementById('map'){
//缩放:16,
//中心:myLatLng
// });
var infoWindow=new google.maps.infoWindow(),marker,i;
对于(i=0;iBuka:“+judul.jadwal_praktek+”
No Telp:“+judul.No_Telp+”);
信息窗口。打开(地图、标记);
}
})(marker,i));
}
});
});
什么不起作用?你能提供一些工作代码吗?控制台中是否有任何错误?没有错误,标记不显示。标记数据在json中。谢谢,我已经尝试过了。地图已显示,但标记未显示。您在fasilitas对象中获得了哪些值?你能提供fasilitas的样本数据吗。也可以使用markers=markers.concat(response);而不是标记=响应;我尝试将json数据传递到fasilitas。因此坐标等将在fasilitas中显示。