Как получить конкретное значение из JSON в javascript с mapQuest - PullRequest
0 голосов
/ 25 сентября 2019

Я ppl, я пытаюсь получить lat и lng из MapQuest Decoding Json ... но мой javascript настолько плох, что я не знаю, буду ли я использовать jquery или нет, может быть, с разбором я просто могу ...

Я отправляю адрес Json, чтобы вычислить Lat и Lng ...

<input type="hidden" id="address" value=" @(String.Format("{0} - {1} - {2} - {3}",
                                                              this.Model.Calle, this.Model.Altura,
                                                              this.Model.localidadesInmueble.nombre,
                                                              this.Model.provinciasInmueble.nombre)) " />
                <output id='map' style="width:700px; height:525px; margin: 0; padding: 0;" />

Вот мой код Javascript:

<script>
    // Initialize and add the map
    function initMap() {

        var JsonMapQuest = JSON.parse('http://open.mapquestapi.com/geocoding/v1/address?key=MYKEY&location=Address');
        //var JsonMapQuestDecoded = decodeURI($JsonMapQuest);
        
        var lat1 = $jsonMapQuest.results.locations.latLng.lat;
        var lon1 = $jsonMapQuest.results.locations.latLng.lng;
        // Posicion del mapa
        var pos = { lat: lat1, lng: lon1 };
        // El mapa, centrado en la posicion
        var map = new google.maps.Map(
            document.getElementById('map'), { zoom: 8, center: pos });
        // El marcador, posicionado en la posicion
        var marker = new google.maps.Marker({ position: pos, map: map });
    }
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=MYKEY&callback=initMap"
        async defer></script>

Это JSON, который я получаю по URL ...

{
  "info": {
    "statuscode": 0,
    "copyright": {
      "text": "© 2018 MapQuest, Inc.",
      "imageUrl": "http://api.mqcdn.com/res/mqlogo.gif",
      "imageAltText": "© 2018 MapQuest, Inc."
    },
    "messages": []
  },
  "options": {
    "maxResults": -1,
    "thumbMaps": true,
    "ignoreLatLngInput": false
  },
  "results": [
    {
      "providedLocation": {
        "location": "Washington,DC"
      },
      "locations": [
        {
          "street": "",
          "adminArea6": "",
          "adminArea6Type": "Neighborhood",
          "adminArea5": "Washington",
          "adminArea5Type": "City",
          "adminArea4": "District of Columbia",
          "adminArea4Type": "County",
          "adminArea3": "DC",
          "adminArea3Type": "State",
          "adminArea1": "US",
          "adminArea1Type": "Country",
          "postalCode": "",
          "geocodeQualityCode": "A5XAX",
          "geocodeQuality": "CITY",
          "dragPoint": false,
          "sideOfStreet": "N",
          "linkId": "282772166",
          "unknownInput": "",
          "type": "s",
          "latLng": {
            "lat": 38.892062,
            "lng": -77.019912
          },
          "displayLatLng": {
            "lat": 38.892062,
            "lng": -77.019912
          },
          "mapUrl": "http://open.mapquestapi.com/staticmap/v4/getmap?key=KEY&type=map&size=225,160&pois=purple-1,38.892062,-77.019912,0,0,|&center=38.892062,-77.019912&zoom=12&rand=306744981"
        }
      ]
    }
  ]
}

Это не работает, на моей странице нет карты .. В результате должна получиться карта, созданная с помощью карт Google, центр и маркер на адресе, который ядобавили URL, который мне дал mapQuest ...

1 Ответ

0 голосов
/ 25 сентября 2019

JsonMapQuest и $jsonMapQuest, очевидно, не одно и то же ...

Вам нужно решить, как его назвать, а затем придерживаться его, например:

var JsonMapQuest = ...
var lat = JsonMapQuest.results.locations.latLng.lat;
var lng = JsonMapQuest.results.locations.latLng.lng;

Вероятно, это также сработает, что на несколько строк меньше, поскольку пропускает всю эту бесполезную обработку:

var position = JsonMapQuest.results.locations.latLng;
...