首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌地图地理编码不在TSO主机上运行

谷歌地图地理编码不在TSO主机上运行
EN

Stack Overflow用户
提问于 2015-09-16 14:53:29
回答 1查看 225关注 0票数 1

我使用以下代码将地址转换为经度和纬度。代码摘自http://www.phpmoot.com/php-get-latitudelongitude-from-an-address-with-google-map/

代码语言:javascript
复制
$address = '201 S. Division St., Ann Arbor, MI 48104'; // Google HQ
$prepAddr = str_replace(' ','+',$address);

$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&sensor=false');

$output= json_decode($geocode);

$lat = $output->results[0]->geometry->location->lat;
$long = $output->results[0]->geometry->location->lng;

echo $address.'<br>Lat: '.$lat.'<br>Long: '.$long;

这在我以前的主机上很好,但是当我将站点移到TSO主机时,它就不再起作用了。会有什么原因呢?

我尝试使用url中的浏览器api键和服务器api键,但这也不起作用。像这样

代码语言:javascript
复制
http://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&key=****API_KEY_GOES_HERE****&sensor=false

欢迎任何帮助。东主的支持似乎无法解决这一问题。

EN

回答 1

Stack Overflow用户

发布于 2015-09-16 15:24:18

为了确保它与服务器相关,我建议您尝试在页面中使用JS。请尝试通过更改您的div ID和键来实现下面的代码。还将地址变量传递到相关位置。

代码语言:javascript
复制
   <script>
     function initialize() {
        var center;
        var geocoder =  new google.maps.Geocoder();
        geocoder.geocode( { 'address': $AdressYouGotFromThePost}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var mycenter = new  google.maps.LatLng(results[0].geometry.location.lat(),results[0].geometry.location.lng());//
            var mapProp = {
            center:mycenter,
            zoom:11
        };
        var map=new google.maps.Map(document.getElementById("YOURDIVID"),mapProp);
        var request = {
                location: mycenter,
                radius: '20000',
                types: ['bar,night_club,cafe,museum,movie_theater,zoo,aquapark']
            };
        service = new google.maps.places.PlacesService(map);
        service.nearbySearch(request, callback);            
    }
    function callback(results, status) {
        if (status == google.maps.places.PlacesServiceStatus.OK) {
            for (var i = 0; i < results.length; i++) {
                var place = results[i];
                createPhotoMarker(results[i]);
            }
        }
    }

    function createPhotoMarker(place) {
      var photos = place.photos;
      if (!photos) {
        return;
      }

      var marker = new google.maps.Marker({
        map: map,
        position: place.geometry.location,
        title: place.name
        //icon: photos[0].getUrl({'maxWidth': 55, 'maxHeight': 55})
      });
      //console.log(photos[0].getUrl({'maxWidth': 105, 'maxHeight': 105}));

      var contenthtml = "<p>"+place.name+"</p><img src="+photos[0].getUrl({'maxWidth': 105, 'maxHeight': 105})+" width='105px'/>";
      var infowindow = new google.maps.InfoWindow({
          content:contenthtml
          });

        google.maps.event.addListener(marker,'click',function() {
          map.setZoom(17);
          map.setCenter(marker.getPosition());
          infowindow.open(map,marker);
          });

        }
    });
 }

 </script>

     <script async="" defer="" src="https://maps.googleapis.com/maps/api/js?key=YOURACCESSKEYHERE&amp;callback=initialize&amp;libraries=places">

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32612065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档