Просмотр улиц с помощью Google Maps с использованием текстового адреса

У меня есть карта google на моей одностраничной странице wordpress, которая захватывает адрес из 2 настраиваемых полей. Он отлично работает, но теперь я пытаюсь добавить ссылку/опцию просмотра улиц.

У меня на моей странице -

<iframe width="100%" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.google.com/maps/embed/v1/place?q=<?php echo $add; ?>,%20<?php  $terms = wp_get_post_terms(get_the_ID(), 'city-type');
  if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
     foreach ( $terms as $term ) {
 if ($term->parent == 0) //check for parent terms only
       echo '' . $term->name . '';      
     }
  } ?>&zoom=17&key=mytoken"></iframe>

Затем будет выводиться что-то вроде этого -

<iframe width="100%" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.google.com/maps/embed/v1/place?q=100 las vegas ave,%20Las Vegas, NV&amp;zoom=17&amp;key=mytoken"></iframe>

Есть ли способ добавить уличный вид без использования координат?

Я попытался получить координаты, но они были слегка отключены -

<?php
 function getCoordinates($address){

$address = str_replace(" ", "+", $address); // replace all the white space with "+" sign to match with google search pattern

$url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address=$address";

$response = file_get_contents($url);

$json = json_decode($response,TRUE); //generate array object from the response from the web

return ($json['results'][0]['geometry']['location']['lat'].",".$json['results'][0]['geometry']['location']['lng']);

}

$terms = wp_get_post_terms(get_the_ID(), 'city-type');
 if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
     foreach ( $terms as $term ) {
 if ($term->parent == 0) //check for parent terms only
      echo getCoordinates($add, $term->name, $property_pin);     
     }
  } else {
echo getCoordinates($add, $term->name, $property_pin);
}

?>

Я уже использую геокод, чтобы попытаться получить координаты перед раздачей. Например, геокод дает мне эти координаты - 34.0229995, -118.4931421, но координаты, которые я ищу, - 34.050217, -118.259491

Ответ 1

Хорошо, я понял это.

Я использовал код из моего вопроса, чтобы получить координаты адреса -

<?php

// FUNCTION TO CONVERT ADDRESSES INTO COORDINATES
function getCoordinates($address){

$address = str_replace(" ", "+", $address); // replace all the white space with "+" sign to match with google search pattern

$url = "https://maps.googleapis.com/maps/api/geocode/json?address=$address&key=YOUR_TOKEN_KEY";

$response = file_get_contents($url);

$json = json_decode($response,TRUE); //generate array object from the response from the web

return ($json['results'][0]['geometry']['location']['lat'].",".$json['results'][0]['geometry']['location']['lng']);
}

// THIS GETS MY TOP TERM FROM MY CUSTOM TAXONOMY I.E. NEW YORK, NY
$terms = wp_get_post_terms(get_the_ID(), 'city-type');
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
     foreach ( $terms as $term ) {
 if ($term->parent == 0) //check for parent terms only

// $ADD IS FROM MY CUSTOM FIELD FOR THE ADDRESS I.E. 1460 BROADWAY
     $the_address = getCoordinates($add, $term->name);    
     }
  }; ?>

Затем я просто использовал следующий код для встраивания google (замените ключ токена своим) ---

<iframe width="100%" height="350" frameborder="0" style="border:0"
src="https://www.google.com/maps/embed/v1/streetview?location=<?php echo $the_address; ?>&heading=165&pitch=0&key=YOUR-TOKEN-KEY" allowfullscreen></iframe>

Чтобы добавить карту улиц, мне захотелось обоим, хотя я сделал так, чтобы создать два div, по одному для каждой карты, а затем просто использовать функции щелчка, чтобы показать/скрыть их.

jQuery(document).ready(function(){
    $("#sv-link").click(function(){
        $("#rv-box").slideToggle("fast");
$("#sv-box").slideToggle();
});
$("#rv-link").click(function(){
        $("#sv-box").slideToggle("fast");
$("#rv-box").slideToggle();
});

});

Я знаю, что это, вероятно, не лучшее решение, и я, вероятно, могу копать глубже, но это все, что мне нужно. Я столкнулся с проблемой с двумя адресами, которые имели несколько изображений/перспектив для одного местоположения. Я пытаюсь понять это, квадратный footlocker, использующий адрес 1460 в широком диапазоне, является прекрасным примером.

Кроме того, он работает нормально.

Карты Google

Ответ 2

Если вы получите координаты, вы получите точное местоположение. Браузеры в эти дни могут запрашивать разрешения, а мобильные устройства поставляются с GPS. использование адресов не так точно.

Что такое аргумент удобства использования, просто запрашивая данные, если вы сначала получите согласие пользователей?