在谷歌地图中做“沿途的兴趣点”

     2023-02-23     136

关键词:

【中文标题】在谷歌地图中做“沿途的兴趣点”【英文标题】:doing "points of interest along a route" in google maps 【发布时间】:2011-04-29 17:38:53 【问题描述】:

我需要允许旅行者使用谷歌地图绘制路线,然后查询我的兴趣点数据库(比如说,麦当劳的位置),然后显示所有这些位置在一两英里内的路线他们将采取。问题是,我如何有效地获取从谷歌返回的“行车路线”信息(本质上是一组纬度/经度对),并将其转换为 sql 查询以获取距离路线一定距离内的位置?

它不必非常精确,与路线的“鸟儿飞翔”距离就可以了。我最担心它的效率是否合理。

在数据库中,基本上每个条目都有一个纬度和经度,但我可以根据需要更改数据库架构。

作为一个例子,这个网站做了我想做的事情(如果你给出一个起点和终点,它将显示你将要走的高速公路附近的雪佛龙车站): http://www.chevron.com/products/stations/stationfinder/planyourroute.aspx

(来源:karmatics.com)

【问题讨论】:

【参考方案1】:

看看这个

http://google-maps-utility-library-v3.googlecode.com/svn/tags/routeboxer/1.0/examples/routeboxer-v3.html

这是文档:http://google-maps-utility-library-v3.googlecode.com/svn/tags/routeboxer/1.0/docs/examples.html

您可以从 RouteBoxer 获取框坐标并将其发送到服务器端脚本进行处理

【讨论】:

完美,正是我想要的。 我一直在寻找一个星期的答案!谢谢! 链接已失效。 :(【参考方案2】:
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>Polygon arrays</title>
    <style>
      #map 
        height: 100%;
      
      html, body 
        height: 100%;
        margin: 0;
        padding: 0;
      
    </style>
  </head>

  <body>
    <div id="map"></div>
     <script>    
var map;
      function initMap() 
         map = new google.maps.Map(document.getElementById('map'), 
          center: lat: 19.2570, lng: 72.8712,
          zoom: 10,
        );

        var directionService = new google.maps.DirectionsService();
        var directionsRenderer = new google.maps.DirectionsRenderer( map: map ); 
        var request = 
           origin: "<?php echo $source;?>",
          destination: "<?php echo $destination;?>", 
          travelMode: google.maps.DirectionsTravelMode.DRIVING
        


        directionService.route(request, function(result, status) 
        if (status == google.maps.DirectionsStatus.OK) 

            var path = result.routes[0].overview_path;

            var poly = new google.maps.Polyline(
              strokeColor: '#FF0000',
              strokeOpacity: 1.0,
              strokeWeight: 3,
             map: map,
            );
            poly.setPath(path);


            var myTollLocations = [
              <?php

                 isset($hello); //$hello is array which comes from database
              foreach ($hello as $key => $value) 
                ?>
                  new google.maps.LatLng(<?php echo $hello[$key]->latitude;?>, <?php echo $hello[$key]->longitude;?>),
                <?php
              
              ?>

            ];


            for (var i = 0; i < myTollLocations.length  ; i++) 
              if (google.maps.geometry.poly.isLocationOnEdge(myTollLocations[i], poly,0.005)) 
                  console.log("found");


                else
                  console.log("Not Found!");
                
            ;




           <?php
           $markersLocation =  array($source, $destination);
             foreach ($markersLocation as $key => $values) 

             ?>


          //Source Marker( convert address to LatLng for marker)   
           var geocoder = new google.maps.Geocoder();            
            geocoder.geocode(  'address': '<?php echo $markersLocation[$key]?>', function(results, status) 

                if (status == google.maps.GeocoderStatus.OK) 
                    var latitude = results[0].geometry.location.lat();
                    var longitude = results[0].geometry.location.lng();
                

                console.log(latitude);
                console.log(longitude);

                var myLatLng = lat: latitude, lng: longitude;



                var marker = new google.maps.Marker(
                    position: myLatLng,
                    map: map,
                    title: 'source',
                    icon: 'http://innowrap.com/clients/digitoll/ic_red_marker.png'

                );

            );


            <?php
           
            ?>


           else 
            alert("Directions query failed: " + status);
          
        );


      


    </script>
    <script src="https://maps.googleapis.com/maps/api/js?key=ADD YOUR API KEY&libraries=geometry&callback=initMap"
         async defer></script>
  </body>
</html> 

【讨论】:

虽然欢迎使用此代码 sn-p,并且可能会提供一些帮助,但它会是 greatly improved if it included an explanation of howwhy 这解决了问题。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。

在谷歌地图上分享位置

】在谷歌地图上分享位置【英文标题】:SharinglocationongoogleMaps【发布时间】:2014-10-2703:40:38【问题描述】:我是androidLocationAPI和Maps的新手。我正在考虑制作一个可以用来分享朋友位置并在谷歌地图上找到他们的应用程序。市场... 查看详情

使用 TimerTask 在谷歌地图中设置地图

】使用TimerTask在谷歌地图中设置地图【英文标题】:setmapingooglemapswithTimerTask【发布时间】:2013-08-0401:53:08【问题描述】:我想在谷歌地图v2中更改地图的位置但我已经在TimerTask中完成了...目标、缩放、方位等等,它说"IllegalStateEx... 查看详情

在谷歌地图颤动中设置标记

】在谷歌地图颤动中设置标记【英文标题】:setupmarkeringooglemapflutter【发布时间】:2021-01-3116:52:46【问题描述】:我可以显示带有自定义纬度和经度的地图,但我想在谷歌地图中动态显示商店的标记,但我有点卡在下一步做什么... 查看详情

在谷歌地图上显示风向

】在谷歌地图上显示风向【英文标题】:ShowwinddirectiononGoogleMaps【发布时间】:2011-01-1717:22:11【问题描述】:我计算了风向,现在我想显示风向指向144度(在指南针上)。如何在Google地图上显示此箭头?【问题讨论】:【参考方... 查看详情

在谷歌地图上绘制区域

】在谷歌地图上绘制区域【英文标题】:Drawingregionongooglemaps【发布时间】:2017-11-1803:41:27【问题描述】:如果我在谷歌地图中搜索查询,例如“carltonvictoriaaustralia”,那么它会给我一张该地区的地图,并在该地区周围有边界。... 查看详情

在谷歌地图中充气自定义视图

】在谷歌地图中充气自定义视图【英文标题】:InflateacustomViewinsidegooglemap【发布时间】:2021-09-1018:33:59【问题描述】:如何在谷歌地图片段中填充自定义视图?要在地图上添加图像/点,我们可以使用Markers或GroundOverlay,但如果我... 查看详情

在谷歌地图中隐藏纬度和经度

】在谷歌地图中隐藏纬度和经度【英文标题】:HidingthelatitudeandlongitudeinaGoogleMap【发布时间】:2011-07-1419:19:59【问题描述】:我正在制作一个谷歌地图,它会在地图上显示一个应该对用户保密的地点。所以我的问题是如何在我的... 查看详情

有没有可能在谷歌地图上制作工具栏?

】有没有可能在谷歌地图上制作工具栏?【英文标题】:Isthereanypossiblethatmakeatoolbarongooglemap?【发布时间】:2015-04-1502:23:14【问题描述】:我曾尝试在谷歌地图上添加UItoolbar,但地图被工具栏覆盖。即使我将地图视图添加为子视... 查看详情

如何在谷歌地图中设置多个航点?

】如何在谷歌地图中设置多个航点?【英文标题】:HowtointentmultiplewaypointinGoogleMaps?【发布时间】:2018-08-1801:30:22【问题描述】:这是按钮根据textview地址链接到谷歌地图的代码。button.setOnClickListener(newView.OnClickListener()@Overridepublic... 查看详情

在谷歌地图上隐藏其他位置

】在谷歌地图上隐藏其他位置【英文标题】:Hideotherlocationongooglemap【发布时间】:2017-08-0902:48:29【问题描述】:如何在谷歌地图上隐藏其他酒店位置,我只想在我的项目中显示酒店位置。我尝试了许多不同的方式,比如能见度... 查看详情

如何在谷歌地图上显示圆圈?

】如何在谷歌地图上显示圆圈?【英文标题】:HowtoshowcircleonGoogleMaps?【发布时间】:2018-06-2422:17:38【问题描述】:我知道这个问题经常被问到,但我在Google地图上显示圆圈时遇到了问题。实际上,我的地图上有标记。importhtmlTemp... 查看详情

在谷歌地图上显示正确的位置

】在谷歌地图上显示正确的位置【英文标题】:ShowcorrectpositiononGooglemaps【发布时间】:2012-10-1706:43:13【问题描述】:我尝试实现谷歌定位应用程序来显示用户在谷歌地图上的位置。我在StackOverflow上找到了这段代码,但这段代码... 查看详情

在谷歌地图上查找位置

】在谷歌地图上查找位置【英文标题】:FindingLocationonGoogleMap【发布时间】:2013-11-2109:14:21【问题描述】:我正在尝试在Google地图上查找我的位置。我的代码在这里。我已经在我的手机上运行了我的应用程序,但不幸的是它停止... 查看详情

如何在谷歌地图中高效地绘制多条折线?

】如何在谷歌地图中高效地绘制多条折线?【英文标题】:HowtoDrawManyPolylinesinGoogleMapEfficiently?【发布时间】:2015-07-0804:54:26【问题描述】:我目前正在学习制作一个使用谷歌地图向用户显示数据的安卓应用。目前我正在使用折线... 查看详情

如何在谷歌地图中锁定国家

】如何在谷歌地图中锁定国家【英文标题】:HowdoIlockthecountrydowninGoogleMaps【发布时间】:2009-07-0813:19:48【问题描述】:我怎样才能让你不能在谷歌地图中拖到英国以外的地方?你能把它锁定在某个区域吗,因为我希望能够在英国... 查看详情

如何在谷歌地图中添加两种类型的标记

】如何在谷歌地图中添加两种类型的标记【英文标题】:HowtoaddtwotypesofmarkerinthegoogleMap【发布时间】:2019-08-2003:25:19【问题描述】:我想在谷歌地图中添加两种类型的标记,第一种类型将是可拖动的,另一种类型在谷歌地图中是... 查看详情

如何在谷歌地图上显示多个信息窗口?

】如何在谷歌地图上显示多个信息窗口?【英文标题】:Howtoshowmultipleinfowindowongooglemap?【发布时间】:2020-04-2621:07:43【问题描述】:我尝试在googlemapandroid上创建多个信息窗口。它不提供任何类似的功能。如何在谷歌地图上一次... 查看详情

获取用户国家和城市名称并在谷歌地图上定位

】获取用户国家和城市名称并在谷歌地图上定位【英文标题】:Getusercountryandcitynameandlocateongooglemap【发布时间】:2019-07-2308:51:38【问题描述】:我想在谷歌地图上显示用户的当前位置和国家名称,城市名称我尝试显示未定义的国... 查看详情