Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用WordPress在Google map版本3上查找WP作者_Wordpress_Google Maps_Google Maps Api 3 - Fatal编程技术网

使用WordPress在Google map版本3上查找WP作者

使用WordPress在Google map版本3上查找WP作者,wordpress,google-maps,google-maps-api-3,Wordpress,Google Maps,Google Maps Api 3,我有这些代码,它们使用经度和纬度在谷歌地图上定位帖子: 头球进洞 <script type="text/javascript"> var infowindow = new google.maps.InfoWindow(); var pinkmarker = new google.maps.MarkerImage('/wp-content/themes/mapdemo/pink_Marker.png', new google.maps.Size(20, 34) ); var shado

我有这些代码,它们使用经度和纬度在谷歌地图上定位帖子: 头球进洞

<script type="text/javascript">
var infowindow = new google.maps.InfoWindow();
var pinkmarker = new google.maps.MarkerImage('/wp-content/themes/mapdemo/pink_Marker.png', new google.maps.Size(20, 34) );
var shadow = new google.maps.MarkerImage('/wp-content/themes/mapdemo/shadow.png', new google.maps.Size(37, 34) );

    function initialize() {
    map = new google.maps.Map(document.getElementById('map'), { 
        zoom: 6, 
        center: new google.maps.LatLng(37.5407246, -77.4360481), 
        mapTypeId: google.maps.MapTypeId.ROADMAP 
    });

    for (var i = 0; i < locations.length; i++) {  
        var marker = new google.maps.Marker({
            position: locations[i].geometry.location,
            icon: pinkmarker,
            shadow: shadow,
            map: map
        });
        google.maps.event.addListener(marker, 'click', (function(marker, i) {
          return function() {
            infowindow.setContent(locations[i].info);
            infowindow.open(map, marker);
          }
        })(marker, i));
    }

     }
     </script>

var infowindow=new google.maps.infowindow();
var pinkmarker=newgoogle.maps.MarkerImage('/wp content/themes/mappemo/pink_umarker.png',new google.maps.Size(20,34));
var shadow=new google.maps.MarkerImage('/wp content/themes/mapdemo/shadow.png',new google.maps.Size(37,34));
函数初始化(){
map=new google.maps.map(document.getElementById('map'),{
缩放:6,
中心:新google.maps.LatLng(37.5407246,-77.4360481),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
对于(var i=0;i
体内

<?php if ( have_posts() ) : ?>
<!-- WordPress has found matching posts -->
<div style="display: none;">
  <?php $i = 1; ?>
  <?php while ( have_posts() ) : the_post(); ?>
  <?php if ( get_post_meta($post->ID, 'latlng', true) !== '' ) : ?>
  <div id="item<?php echo $i; ?>">
    <p><a href="<?php the_permalink(); ?>">
      <?php the_title(); ?>
      </a></p>
    <?php the_content(); ?>
  </div>
  <?php endif; ?>
  <?php $i++;   ?>
  <?php endwhile; ?>
</div>
<script type="text/javascript">
                var locations = [
                    <?php  $i = 1; while ( have_posts() ) : the_post(); ?>
                        <?php if ( get_post_meta($post->ID, 'latlng', true) !== '' ) : ?>
                            {
                                latlng : new google.maps.LatLng<?php echo get_post_meta($post->ID, 'latlng', true); ?>, 
                                info : document.getElementById('item<?php echo $i; ?>')
                        },
                        <?php endif; ?>
                    <?php $i++; endwhile; ?>
                ];
            </script>
<div id="map" style="width: 100%; height: 700px;"></div>
<?php else : ?>
<!-- No matching posts, show an error -->
<h1>Error 404 &mdash; Page not found.</h1>
<?php endif; ?>


使用lat lng作为输入并检索地址的过程称为反向地理编码(正常地理编码将地址作为输入并返回lat lng)。谷歌提供了一些地理编码选项:

  • 提供了以JavaScript客户端为中心的服务的概述,该服务旨在用于响应web页面上动态用户交互的JavaScript代码中
  • Google提供了对API web服务的介绍,该服务旨在在服务器端更多地用于预先知道的地址,而不是用于支持动态地图交互

我将两者都包括在内,因为看起来您正在处理静态数据。但我不确定你到底想实现什么,所以地理编码服务可能更适合你,或者将来会有用。请记住,这两个选项的服务条款要求您使用在谷歌地图上下文中检索的数据,并且数据不会保存以构建地理编码数据目录。还有使用限制和其他限制,因此您需要仔细阅读这些部分。我希望这就是您所寻找的,这有助于-

我希望在这里使用author\u meta\u标记,例如我添加到管理区域中的用户文件中的地址,并在地图上精确定位他们的位置。由于您已经拥有地址,您可能只需要通过地理编码API运行地址。您可以发送带有地址的请求,获取lat lng,然后使用lat lng在地图上放置标记。另外,我从您的JavaScript代码中注意到您正在使用Google Maps v2。那个版本已经被否决了,所以你应该考虑升级到V3。是的,但是我很难实现它。我知道我应该使用地址作为变量,并通过每个订户地址循环,以确定其在地图上的位置,但无法使其工作。你能给我指出一个示例代码吗?我正试图帮助你,但你的问题一直在变化。你目前的问题到底是什么?除了你无法工作的问题之外,你还想通过新的billerickson.com实现什么?
if(is_single()):
global $post;
    $address = get_post_meta($post->ID,'address',true);
     if (!$address) $address = '123 Main St, Austin, TX';
    $google_api_key = get_option('maps_key');
    if($address): ?>
        <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=<?php echo $google_api_key; ?>" type="text/javascript"></script>
        <div id="map_canvas" style="width: 100%; height: 100px"></div>
        <script type="text/javascript">
            function showAddress(address) {
                var map = new GMap2(document.getElementById("map_canvas"));
                var geocoder = new GClientGeocoder();
                geocoder.getLatLng(
                    address,
                    function(point) {
                        if (!point) {
                            alert(address + " not found");
                        } else {
                            map.setCenter(point, 13);
                            var marker = new GMarker(point);
                            map.addOverlay(marker);
                        }
                    }
                );
            }
        showAddress("<?php echo $address; ?>");
    </script>
<?php endif;