0

テキストから地名を抽出するために yahoo のプレースメーカーを使用しています。これから、2 種類の配列を提供するコールバック関数を取得します。

これは使用しているコードですが、必要な値はどれもありません。

  Placemaker.getPlaces(text,function(o){
  if (typeof o.match!=='undefined' && o.match.length==1){
   latitude=o.match.place.centroid.latitude, longitude=o.match.place.centroid.longitude; 
   console.log(latitude,longitude);}

  if(typeof o.match !=='undefined'&& o.match.length==2){
    latitude=o[match].place.centroid.latitude,
    longitude=o[match].place.centroid.longitude;
   console.log(latitude,longitude);
      }

最初の配列は次のようになります

({
    match: {
        place: {
            woeId: "29007292",
            type: "Town",
            name: "Jubila, West Bengal, IN",
            centroid: {
                latitude: "23.1626",
                longitude: "87.7889"
            }
        },
        reference: [{
            woeIds: "29007292",
            placeReferenceId: "2",
            placeIds: "1",
            start: "14",
            end: "20",
            isPlaintextMarker: "1",
            text: "jubila",
            type: "plaintext",
            xpath: null
        }, {
            woeIds: "29007292",
            placeReferenceId: "3",
            placeIds: "1",
            start: "82",
            end: "88",
            isPlaintextMarker: "1",
            text: "jubila",
            type: "plaintext",
            xpath: null
        }]
    }
})

もう1つはこのように

({
    match: [{
        place: {
            woeId: "23424950",
            type: "Country",
            name: "Spain",
            centroid: {
                latitude: "39.8949",
                longitude: "-2.98831"
            }
        },
        reference: {
            woeIds: "23424950",
            placeReferenceId: "1",
            placeIds: "1",
            start: "64",
            end: "70",
            isPlaintextMarker: "1",
            text: "Espa\xF1a",
            type: "plaintext",
            xpath: null
        }
    }, {
        place: {
            woeId: "24865675",
            type: "Continent",
            name: "Europe",
            centroid: {
                latitude: "52.9762",
                longitude: "7.85784"
            }
        },
        reference: {
            woeIds: "24865675",
            placeReferenceId: "2",
            placeIds: "2",
            start: "93",
            end: "99",
            isPlaintextMarker: "1",
            text: "Europa",
            type: "plaintext",
            xpath: null
        }
    }]
})
4

1 に答える 1

0

変化する

if (typeof o.match!=='undefined' && o.match.length==1){

if (typeof o.match!=='undefined'){

2 番目の場合:

for(var i in o.match) {
 console.log(o.match[i].place.centroid.latitude); //wil show all lat's in loop
}

または、最初の緯度のみが必要な場合:

console.log(o.match[0].place.centroid.latitude); //will show only first lat
于 2012-08-13T12:02:44.423 に答える