0

地图在没有标记对象的情况下正确加载,但是当我在此结构上添加标记对象时它不会加载我的

<!doctype html>
<html>
    <head>
    <script type="text/javascript"
    src="http://maps.google.com/maps/api/js?sensor=false"></script>

    <script src="jquery-1.7.2.min.js" type="text/javascript"></script>
    <script src="script.js" type="text/javascript"></script>
    <script type="text/javascript"> 

        $.geolocation.find(function(location) {
            var lat = location.latitude;
            var lng = location.longitude;

            var map = new google.maps.Map($('#mapDiv').get(0), {
                center: new google.maps.LatLng(lat, lng),
                zoom: 13,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            });

            var pinColor = "FE7569";
            var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2" + pinColor,
            new google.maps.Size(21, 34),
            new google.maps.Point(0,0),
            new google.maps.Point(10, 34));
            var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow",
            new google.maps.Size(40, 37),
            new google.maps.Point(0, 0),
            new google.maps.Point(12, 35))

            var marker= new google.maps.Marker({
                position: new google.maps.LatLng(lat, lng),
                map: map,
                icon: pinImage,
                shadow: pinShadow 
            });        
        });
    </script>
</head>
 <body>
    <div id="mapDiv" style="width:700px; height: 500px;"></div>
 </body>
</html>

页面 script.js 中包含的脚本

      (function($){

            $.extend($.support,{
                geolocation:function(){
                    return $.geolocation.support();
                }
            });

            $.geolocation = {        
                find:function(success, error, options){
                    if($.geolocation.support()){
                        options = $.extend({highAccuracy: true, track: false}, options);
                        ($.geolocation.object())[(options.track ? 'watchPosition' : 'getCurrentPosition')](function(location){
                            success(location.coords);
                        }, function(){
                            error();
                        }, {enableHighAccuracy: options.highAccuracy});     
                    }else{
                        error();                
                    }
                },
                object:function(){
                    return navigator.geolocation;
                },
                support:function(){
                    return ($.geolocation.object()) ? true : false;
                }
            };

        })(jQuery);

我需要在谷歌地图中包含标记,另一个问题是此代码仅在 Firefox 和 IE 上运行,但不能在 Google Chrome 上运行

4

1 回答 1

2

看看这个,我认为这已经解决了,你的错误在 url 参数中,现在它也在 Chrome 中工作。FE7569您还可以根据需要通过更换来更改标记的颜色。

例如: 73B5EB 在此处输入图像描述 33DE61 在此处输入图像描述

您可以做的另一件事是将文本放入标记中,如下所示:

http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=You%20are%20here|FE7569

例如: 在此处输入图像描述


您的代码的实时演示,但已更正:

http://jsfiddle.net/oscarj24/sPsxh/

希望这可以帮助 :-)

于 2012-08-08T15:26:03.190 回答