Javascript 使用GoogleMapPlacesAPI绘制中心地图

Javascript 使用GoogleMapPlacesAPI绘制中心地图,javascript,php,google-maps,Javascript,Php,Google Maps,我编写了一个网站(基于html、css),可以在指定的位置(此时从数据库/SQL)搜索医生。 我还想包括一张地图,让用户看到他周围的医生 所以我做了一些实验,谷歌地图放置了API和其他API,但我的编程技能太差了,无法做到这一点/无法理解该做什么 我需要一个地图,可以发现用户和他的中心-并设置一个标记在他的位置。用户定义搜索区域后,地图应切换到此位置并显示所有医生(可能按医生的主题过滤) 最好的方法是使用我的PHP输入字段(用于数据库请求)并将其与映射连接起来吗 第一个脚本是我的实验地图。它居中

我编写了一个网站(基于html、css),可以在指定的位置(此时从数据库/SQL)搜索医生。 我还想包括一张地图,让用户看到他周围的医生

所以我做了一些实验,谷歌地图放置了API和其他API,但我的编程技能太差了,无法做到这一点/无法理解该做什么

我需要一个地图,可以发现用户和他的中心-并设置一个标记在他的位置。用户定义搜索区域后,地图应切换到此位置并显示所有医生(可能按医生的主题过滤)

最好的方法是使用我的PHP输入字段(用于数据库请求)并将其与映射连接起来吗

第一个脚本是我的实验地图。它居中,但不在用户周围设置任何位置标记

第二个脚本是与sql数据库通信的php请求


var映射;
var步进显示;
var服务;
函数初始化(coords){
var latlng=新的google.maps.latlng(坐标系纬度,坐标系经度);
变量myOptions={
缩放:8,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
var marker=new google.maps.marker({
位置:latlng,
地图:地图,
标题:“我的小餐馆:)”
});
}
navigator.geolocation.getCurrentPosition(函数(位置){
初始化(position.coords);
}, 
函数(){
document.getElementById('map_canvas')。innerHTML='Deine Position konnte leider nicht ermittelt werden';
});
google.maps.event.addDomListener(窗口“加载”,初始化);

如果使用PHP(或任何其他服务器端编程语言)或jQuery或JSON文档将标记提供给标记数组,那么问题就不那么严重了

试试这个片段(我已经测试过了):


var mapObj;
函数初始化(){
变量myOptions={
缩放:6,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var mapObj=new google.maps.Map(document.getElementById(“Map_canvas”),myOptions);
var bounds=new google.maps.LatLngBounds();
//试试HTML5地理定位
if(导航器.地理位置)
{
navigator.geolocation.getCurrentPosition(函数(位置)
{
var pos=新的google.maps.LatLng(position.coords.lation,position.coords.longitude);
var infowindow=new google.maps.infowindow({
地图:mapObj,
职位:pos,,
内容:“Deine位置”
});
mapObj.设置中心(pos);
},函数()
{
变量选项={
地图:mapObj,
职位:新google.maps.LatLng(60105),
内容:内容
};
var infowindow=new google.maps.infowindow(选项);
mapObj.设置中心(选项位置);
});
}否则{
//浏览器不支持地理位置
}
var infowindow=new google.maps.infowindow();
var markers=[];//用于保存标记的数组
//多重标记
推动(['London Eye,London',51.503454,-0.119562]);
markers.push(['Palace of Westminster,London',51.499633,-0.124755]);
//循环遍历标记数组并将它们添加到mapObj
对于(i=0;i
然后使用数组存储标记数据。希望这是有意义的

请注意,如果您无法访问所需标记的纬度和经度,还可以选择对地址进行编码:
geocoder.geocode({'address':addressString}

好的,谢谢你。但是每次我把这些脚本片段粘贴到我的脚本中,一切都不起作用了。也许有人能给我一个完整的解决方案,请?好的,它起作用了!但是,现在它先在一些地方设置标记,然后再以我的位置为中心。我需要的功能是它先以我的位置为中心,然后以我的位置为中心我在php输入字段中写下一个城镇,它在大约500米左右的地方或其他地方设置标记。尝试任何方式将位置输入标记数组:
markers.push(['Some title',Latitude,Longitude]);
(使用
mapObj.setCenter(LatLongObj);
到中心地图)然后再次初始化地图。啊,现在我知道了:我不想在地图上标记已定义的位置-我想使用谷歌地图位置库。如果你在谷歌上写下“伦敦医生”,它会跳入地图,显示伦敦的医生(位于伦敦市中心f.e.).这就是我需要的函数!它应该从我的php输入字段中获取他的信息…这根本不起作用!你能进一步帮助我吗?
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&"></script>
<script type="text/javascript">
var mapObj;

function initialize() {

    var myOptions = {
            zoom: 6,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

    var mapObj = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    var bounds = new google.maps.LatLngBounds();

    // Try HTML5 geolocation
    if(navigator.geolocation) 
    {
        navigator.geolocation.getCurrentPosition(function(position) 
        {
            var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
            var infowindow = new google.maps.InfoWindow({
                                    map: mapObj,
                                    position: pos,
                                    content: 'Deine Position'
                                });
            mapObj.setCenter(pos);
        }, function() 
        {
            var options = {
                           map: mapObj,
                           position: new google.maps.LatLng(60, 105),
                           content: content
                        };
            var infowindow = new google.maps.InfoWindow(options);
            mapObj.setCenter(options.position);

        });
    } else {
        // Browser doesn't support Geolocation
    }

    var infowindow  = new google.maps.InfoWindow();
    var markers = []; //array to hold markers
    // Multiple Markers
    markers.push(['London Eye, London', 51.503454, -0.119562]);
    markers.push(['Palace of Westminster, London', 51.499633, -0.124755]);

    // Loop through your array of markers and add them to mapObj  
    for (i = 0; i < markers.length; i++) 
    {
        //create a latitude / longitude object first:
        var pointLatLng = new google.maps.LatLng(markers[i][1],markers[i][2]);  

        //extend map to include new marker
        bounds.extend(pointLatLng);

        //create the marker object:
        markerObj = new google.maps.Marker({
                            position: pointLatLng,
                            map: mapObj,
                            title: markers[i][0]
                        });

        google.maps.event.addListener(markerObj, 'click', (function(markerObj, i) {
                    return function() {
                        infowindow.setContent("info window: "+ markers[i][0]);
                        infowindow.open(mapObj, markerObj);
                    }
            })(markerObj, i));

        // center map fitting all markers on the screen
        mapObj.fitBounds(bounds);
        markerObj.setMap(mapObj);
    }
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>