Javascript 为输入地图标记设置动态变量
我有以下功能:Javascript 为输入地图标记设置动态变量,javascript,json,markers,Javascript,Json,Markers,我有以下功能: $(".mijn_veld").change(function() { $.getJSON('https://url.com/index.php?action=pslist&zip='+$(".mijn_veld").val()+'&country=NL', function(result){ $.each(result.data, function(i, field){ $(".listings").append(
$(".mijn_veld").change(function() {
$.getJSON('https://url.com/index.php?action=pslist&zip='+$(".mijn_veld").val()+'&country=NL', function(result){
$.each(result.data, function(i, field){
$(".listings").append(this.name + "<br> ");
});
});
});
我现在想要的是把这些数据放到一个变量中,这样我的脚本就会在我的地图上做标记。一个例子是:但请注意:我不希望它像现在这样是静态的,每次用getJSON填充另一个zipcode时,它都必须更新这个VAR
var stores = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [5.140439, 51.686608]
},
"properties": {
"spid": "NL3700-03",
"name": "Test Parcel 1",
"add": "Teststreet 1",
"zip": "3500RR",
"city": "utrecht",
"country": "NL",
"phone": "032434234",
"oh": "Ma: 12:00 tot 15:00"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [5.133729,51.681425]
},
"properties": {
"phoneFormatted": "(202) 507-8357",
"phone": "2025078357",
"add": "2221 I St NW",
"city": "Washington DC",
"country": "United States",
"crossStreet": "at 22nd St NW",
"postalCode": "20037",
"state": "D.C."
}
}
]
};
我的问题是:我怎样才能做到这一点?我想确保JSON输出中的name值将以VAR存储中的name表示。每个商店都有这个功能。您可以使用第一个函数将JSON加载到名为places的对象中
var places = {};
$(".mijn_veld").change(function() {
$.getJSON('https://url.com/index.php?action=pslist&zip='+$(".mijn_veld").val()+'&country=NL', function(result) {
places = result;
});
});
然后只需循环遍历结果,并在运行时将其添加到您自己的数据结构中。在本例中,我手动设置了位置,但出于您的目的,您可以从该服务器加载它
var places = {
"status":0,
"data":[
{
"spid":"NL-351202",
"name":"In 't vosje",
"add":"Nobelstraat 141",
"zip":"3512EM",
"city":"UTRECHT",
"country":"NL",
"lon":"5.1246600000",
"lat":"52.0929748000"
},
{
"spid":"NL-358102",
"name":"Vivant Verheijen",
"add":"Burg Reigerstraat 54",
"zip":"3581KV",
"city":"UTRECHT",
"country":"NL",
"lon":"5.1358400000",
"lat":"52.0895721000"
},
{
"spid":"NL-351175",
"name":"Parcelstation deBuren H.Catharijne",
"add":"Catharijnesingel 11-PS",
"zip":"3511GB",
"city":"UTRECHT",
"country":"NL",
"lon":"5.1115500000",
"lat":"52.0922582000"
}
]
};
var stores = {
"type": "FeatureCollection",
"features": []
};
for (var i = 0; i < places.data.length; i++) {
var place = places.data[i];
stores.features.push({
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [place.lat, place.lon]
},
properties: {
"spid": place.spid,
"name": place.name,
"add": place.add,
"zip": place.zip,
"city": place.city,
"country": place.country,
}
});
}
console.log(stores);
可以使用第一个函数将JSON加载到名为places的对象中
var places = {};
$(".mijn_veld").change(function() {
$.getJSON('https://url.com/index.php?action=pslist&zip='+$(".mijn_veld").val()+'&country=NL', function(result) {
places = result;
});
});
然后只需循环遍历结果,并在运行时将其添加到您自己的数据结构中。在本例中,我手动设置了位置,但出于您的目的,您可以从该服务器加载它
var places = {
"status":0,
"data":[
{
"spid":"NL-351202",
"name":"In 't vosje",
"add":"Nobelstraat 141",
"zip":"3512EM",
"city":"UTRECHT",
"country":"NL",
"lon":"5.1246600000",
"lat":"52.0929748000"
},
{
"spid":"NL-358102",
"name":"Vivant Verheijen",
"add":"Burg Reigerstraat 54",
"zip":"3581KV",
"city":"UTRECHT",
"country":"NL",
"lon":"5.1358400000",
"lat":"52.0895721000"
},
{
"spid":"NL-351175",
"name":"Parcelstation deBuren H.Catharijne",
"add":"Catharijnesingel 11-PS",
"zip":"3511GB",
"city":"UTRECHT",
"country":"NL",
"lon":"5.1115500000",
"lat":"52.0922582000"
}
]
};
var stores = {
"type": "FeatureCollection",
"features": []
};
for (var i = 0; i < places.data.length; i++) {
var place = places.data[i];
stores.features.push({
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [place.lat, place.lon]
},
properties: {
"spid": place.spid,
"name": place.name,
"add": place.add,
"zip": place.zip,
"city": place.city,
"country": place.country,
}
});
}
console.log(stores);
我得到以下错误:TypeError:places.data未定义正如我说的,places.data未定义。我检查了控制台告诉我的内容,它确实看到了对象和数组:Object{status:0,data:Array[20]}我已经做了进一步的测试。我确实删除了您手动设置的变量位置。然后我得到了我之前告诉过的错误。在错误发生之前和加载之后添加console.logplaces。它包含什么?对象{}TypeError:places.data未定义,其中包含:for var i=0;i