php – 地理定位:使用OpenStreetMap进行映射和POI

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 地理定位:使用OpenStreetMap进行映射和POI脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在建立一个网站,访问者在地图上显示其位置,并在选定的径(例如10公里)内,访问者可以看到一些POI(例如餐馆,酒吧).

到目前为止我有这个代码

<!DOCTYPE htML>
<html>
    <head>
        <Meta name="viewport" content="inITial-scale=1.0,user-scalable=no" />
        <style type="text/css">
            html { height: 100% }
            body { height: 100%; margin: 0; padding: 0 }
            #map_canvas { height: 100% }
        </style>
        <script type="text/javascript"
                src="http://maps.GOOGLEapis.COM/maps/api/js?key=[MY_KEY]&amp;sensor=false">
        </script>
        <script type="text/javascript">
            function init()
            {
                if(navigator.geolocation)
                {
                    navigator.geolocation.getcurrentPosition (PRocessPosition,handleError);
                }
                else
                {
                    alert("Geolocation not supported in this browser");
                }
            }

            function processPosition(pos)
            {
                VAR latlng = new google.maps.LatLng(pos.coords.latitude,pos.coords.longitude);

                var myOptions = {
                    center: latlng,zoom: 16,mapTypeId: google.maps.MapTypeId.ROADMAP
                };
                var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);   

                var marker = new google.maps.Marker({
                    position: latlng,map: map,title:"You are here! (at least within a "+pos.coords.accuracy+" meter radius)"
                });   
            }

            function handleError(err)
            {
                alert('An error occurred: ' + err.code);
            }

        </script>
    </head>
    <body onload="init()">
        <div id="map_canvas" style="width:100%; height:100%"></div>
    </body>
</html>

它使用谷歌地图向我展示了我在带有标记的地图上的位置.
问题是,我想使用OpenStreetMap中的地图(它们会定期更新,没有限制),但不幸的是我还没有设法实现它.
这是我需要的地图:Maps
1.是否一个示例(教程),它显示了如何使用他们的API,如Google的?
2. OpenStreetMap是否有类似POI的东西,比如Google Places或者甚至可以将Google Places与OpenStreetMap的地图一起使用?

解决方法

如果您想使用OpenStreetMap数据,您应该查看 OpenLayers.这与Google Maps或Bing Maps API的工作方式略有不同:您必须在服务器上安装OpenLayers JavaScript库,并负责显示地图数据(“地图图块”)可以来自各种来:OpenStreetMap(OSM),谷歌地图,您自己的自定义地图数据等. OpenStreetMap website本身使用OpenLayers来显示地图.

1:有documentation(虽然我恐怕不如谷歌地图API那么好)和大量的examples,包括一些使用OpenStreetMap数据,单独或与谷歌数据一起使用(在“过滤器”中输入“osm”)顶部的方框).

2:对于POI,你可以像在this example一样在地图上放置一个“Marker Layer”,包括点击图标时出现的可自定义标记图标和气泡,但你必须处理POI和搜索功能的数据你自己.因此,如果您愿意,您可以自由使用Google Places API,然后在OpenStreetMap上将结果显示标记 – 只要您使用display“Powered by Google”徽标即可.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 地理定位:使用OpenStreetMap进行映射和POI全部内容,希望文章能够帮你解决php – 地理定位:使用OpenStreetMap进行映射和POI所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。