Javascript 添加来自两个不同AJAX请求的传单标记
我有两个不同的JSON响应,它们来自两个AJAX调用。第一种方法将数据正确地打印到传单地图上。但是,第二个不起作用Javascript 添加来自两个不同AJAX请求的传单标记,javascript,jquery,ajax,leaflet,Javascript,Jquery,Ajax,Leaflet,我有两个不同的JSON响应,它们来自两个AJAX调用。第一种方法将数据正确地打印到传单地图上。但是,第二个不起作用 <script type="text/javascript"> $(document).ready(function () { var map = L.map('map').setView([22.6059596, 88.4277967], 13); L.tileLayer('http://api.tiles.mapbox.co
<script type="text/javascript">
$(document).ready(function () {
var map = L.map('map').setView([22.6059596, 88.4277967], 13);
L.tileLayer('http://api.tiles.mapbox.com/v4/abhishekdepro.li9a02j1/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoiYWJoaXNoZWtkZXBybyIsImEiOiI3ZXg1UzlFIn0.d584w0ILalmPRzbJwgxdTw#4', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18
}).addTo(map);
if (localStorage.getItem("user_contact") === null) {
} else {
document.getElementById("user").innerHTML = "Hello, " + localStorage.getItem("user_contact");
document.getElementById("_login").innerHTML = "Logout";
}
//var marker = L.marker([51.5, -0.09]).addTo(map);
//marker.bindPopup("<b>Hello world!</b><br>I am a popup.").openPopup();
$.ajax({
type: 'GET',
dataType: 'json',
url: 'https://bloodplus.herokuapp.com/geopoints',
success: function (data) {
var obj = data;
var totalLocations = obj.length;
var array = [];
var greenIcon = L.icon({
iconUrl: '/images/icon.png',
});
array = obj.bloods;
//alert(array.length);
for (var i = 0; i < array.length; i++) {
marker = new L.marker([parseFloat(array[i].tweet.lat), parseFloat(array[i].tweet.lon)], {
icon: greenIcon
})
.bindPopup(array[i].tweet.group + ', Contact: ' + array[i].tweet.contact).addTo(map);
}
another();
}
});
});
function another() {
$.ajax({
type: 'GET',
dataType: 'json',
url: 'https://bloodplus.herokuapp.com/geopoints',
success: function (data) {
var obj = data;
var totalLocations = obj.length;
//document.getElementById('name').value = parseFloat(obj.bloods[0].tweet.lat);
var array = [];
var greenIcon = L.icon({
iconUrl: '/images/icon.png',
});
array = obj.bloods;
//alert(array.length);
for (var i = 0; i < array.length; i++) {
marker = new L.marker([parseFloat(array[i].tweet.lat), parseFloat(array[i].tweet.lon)], {
icon: greenIcon
})
.bindPopup(array[i].tweet.group + ', Contact: ' + array[i].tweet.contact).addTo(map);
}
}
});
}
</script>
$(文档).ready(函数(){
var map=L.map('map').setView([22.6059596,88.4277967],13);
L.tileLayer('http://api.tiles.mapbox.com/v4/abhishekdepro.li9a02j1/{z} /{x}/{y}.png?访问令牌=pk.eyj1ijoiwjoaxnozwtkzxbyyisimeioii3zxg1uzlfin0.d584w0ILalmPRzbJwgxdTw#4'{
属性:“地图数据©;贡献者,图像©”,
最大缩放:18
}).addTo(地图);
if(localStorage.getItem(“用户\u联系人”)==null){
}否则{
document.getElementById(“用户”).innerHTML=“你好,”+localStorage.getItem(“用户\联系人”);
document.getElementById(“\u login”).innerHTML=“Logout”;
}
//var marker=L.marker([51.5,-0.09])addTo(map);
//marker.bindPopup(“你好,世界!
我是一个弹出窗口。”).openPopup();
$.ajax({
键入:“GET”,
数据类型:“json”,
网址:'https://bloodplus.herokuapp.com/geopoints',
成功:功能(数据){
var obj=数据;
var总配置=对象长度;
var数组=[];
var greenIcon=L.icon({
iconUrl:“/images/icon.png”,
});
数组=obj.blods;
//警报(array.length);
对于(var i=0;i
但当我在这之后提出另一个AJAX请求时。标记未加载,我得到一个错误,如下所示:
TypeError:undefined不是一个函数(计算't.addLayer(this'))
您需要使用
新L.Marker
或L.Marker
,而不是两者的组合-新L.Marker
。请参阅中的“工厂类”部分。似乎没有提供足够的信息来处理。TypeError是试图从未定义的对象访问对象时的常见错误。上面显示的代码是第二个ajax吗?哪一行给出了typeerror?我已经更新了整个代码。另一个
函数在定义了映射
的函数之外。在顶部函数中移动另一个。我已将其替换。现在,错误在这一行:marker=L.marker([parseFloat(数组[i].lat),parseFloat(数组[i].lon)],{icon:greenIcon}).bindPopup(数组[i].group+',Contact:'+array[i].Contact).addTo(映射)
@snkashis您在需要删除的iconUrl:'/images/icon.png'
后面有一个逗号,还有一些其他语法错误-检查函数末尾的}
数量。修复了所有问题。同样的错误。下面是固定的代码:$.ajax({type:'GET',dataType:'json',url:'https://bloodplus.herokuapp.com/userpoints,success:function(data){var obj=data;var totalLocations=obj.length;var array=[];array=obj.users;for(var i=0;i
'undefined'不是对象(计算't.addLayer')