Pregunta

He utilizado el código siguiente para obtener la ubicación del lugar concreto en el mapa utilizando el siguiente fragmento de código

NSString * urlString = [[NSString alloc] initWithFormat:@"http://maps.google.com/maps/geo?key=%@&output=xml&q=%@",GoogleMapsAPIKey,[placeName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

resultado:

<?xml version="1.0" encoding="UTF-8" ?>
<kml xmlns="http://earth.google.com/kml/2.0"><Response>
  <name>postdam</name>
  <Status>
    <code>200</code>
    <request>geocode</request>
  </Status>
  <Placemark id="p1">
    <address>Potsdam, Germany</address>
    <AddressDetails Accuracy="4" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><Country><CountryNameCode>DE</CountryNameCode><CountryName>Deutschland</CountryName><AdministrativeArea><AdministrativeAreaName>Brandenburg</AdministrativeAreaName><SubAdministrativeArea><SubAdministrativeAreaName>Potsdam</SubAdministrativeAreaName><Locality><LocalityName>Potsdam</LocalityName></Locality></SubAdministrativeArea></AdministrativeArea></Country></AddressDetails>
    <ExtendedData>
      <LatLonBox north="52.4513968" south="52.3424614" east="13.1866602" west="12.9305414" />
    </ExtendedData>
    <Point><coordinates>13.0586008,52.3969627,0</coordinates></Point>
  </Placemark>
</Response></kml>

Pero ahora quiero obtener la información efectivo de protección contra el código postal. ¿Cómo hacer que el uso de la maps.google.com?

¿Fue útil?

Solución

ya no necesite utilizar la clave Google Maps API para acceder a esta API.

A continuación se muestra una función PHP que escribí ayer para lograr exactamente esto en JSON

function getCoordinatesFromAddress($address, $lat, $long, $region="US") {
       $json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false&region=$region");
       $json = json_decode($json);

       $lat = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
       $long = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};
}

Otros consejos

Desde Google Maps es centrada en Estados Unidos, acaba de poner en el código postal directamente funciona (al menos por el momento)

http://maps.google.com/maps/geo?output = xml y q = 90210

<AdministrativeArea>
    <AdministrativeAreaName>CA</AdministrativeAreaName>
    <SubAdministrativeArea>
        <SubAdministrativeAreaName>Los Angeles</SubAdministrativeAreaName>
        <Locality>
            <LocalityName>Beverly Hills</LocalityName>
            <PostalCode>
                <PostalCodeNumber>90210</PostalCodeNumber>
            </PostalCode>
        </Locality>
    </SubAdministrativeArea>
</AdministrativeArea>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top