Google maps api 3 Google Maps v3 MarkerManager v1.1 LatLngToPixel未定义

Google maps api 3 Google Maps v3 MarkerManager v1.1 LatLngToPixel未定义,google-maps-api-3,telerik,google-maps-markers,markermanager,Google Maps Api 3,Telerik,Google Maps Markers,Markermanager,从v2升级到谷歌地图v3时遇到问题。特别是使用MarkerManager。我以前从未使用过地图,我正在帮助一些开发人员抛弃了他们的人,他们在v2中开发了地图 该地图最多可显示100个标记,单击该标记可显示信息框。(还有一个telerik RadGrid与结果绑定在一起。)在进入DisplayAllMarkers()管理器.addMarkers()(见下文)之前,一切似乎都正常。它在ProjectionHelperOverlay.prototype.LatLngToPixel中失败,出现未捕获类型

从v2升级到谷歌地图v3时遇到问题。特别是使用MarkerManager。我以前从未使用过地图,我正在帮助一些开发人员抛弃了他们的人,他们在v2中开发了地图

该地图最多可显示100个标记,单击该标记可显示信息框。(还有一个telerik RadGrid与结果绑定在一起。)在进入DisplayAllMarkers()管理器.addMarkers()(见下文)之前,一切似乎都正常。它在ProjectionHelperOverlay.prototype.LatLngToPixel中失败,出现未捕获类型错误:无法调用未定义的方法“lng”。如果latlng未定义,我已尝试在AddMarker中输入警报,但未发出警报。以前对MarkerManager.prototype.addMarkerBatch的调用将mPoint设置为未定义,然后将其传递给getTilePoint,在失败时调用LatLngToPixel

我认为这对听众来说是个问题,但我尝试过很多听众,但都没有成功。我真的很感谢你的帮助,因为我已经有一段时间没有进步了,我让客户失望了,不知道下一步该怎么做

选择SearchResult.js代码片段: 搜索()加载搜索参数(包括北、南、东、西坐标)并调用telerik ajax请求

C#代码片段: SearchResult.js代码段继续: 脚本顺序和版本:
  • jquery-ui-1.9.1.custom.min.css
  • 谷歌地图:v3(我还尝试指定特定的版本3编号,例如v=3.12
  • jquery-1.8.2.js
  • jquery-ui-1.9.1.custom.min.js
  • exposeFoWindow.jsv2.0
  • MarkerManager.jsv1.1
  • SearchResult.js
  • jquery-ui-1.8.16.custom.min.js
  • jquery-1.6.2.min.js

在捆绑了大量不同的东西后,我最终发现问题在于创建标记时需要设置位置

var marker3 = new google.maps.Marker(new google.maps.LatLng(lat, lng), redIcon3);
致:


举个简单的例子来说明这个问题怎么样?
if (Properties.Count >= 1 || zoom == "0")    //display properties
{
    RadAjaxManager1.ResponseScripts.Add("ClearAll();");

    Properties.ForEach(p =>
    {
        string script = "AddMarker(" + p.ID.ToString() + "," + p.LatitudeShort.ToString() + "," + p.LongitudeShort.ToString() + ");";
        RadAjaxManager1.ResponseScripts.Add(script);
    });

    RadAjaxManager1.ResponseScripts.Add("DisplayAllMarkers();");
}
else //zoom out map – which will start the search process all over again.
{
    string delta = "1";
    RadAjaxManager1.ResponseScripts.Add("ZoomOut(" + delta + ");");
}
function ClearAll() {
    batch = [];
}

function AddMarker(id, lat, lng) {
    batch.push(CreatePropertyMarker(lat, lng, id));
}  

function DisplayAllMarkers() {
    mgr = new MarkerManager(map, { trackMarkers: true });

    google.maps.event.addListener(mgr, 'loaded', function () {
        mgr.clearMarkers();
        mgr.addMarkers(batch, 3, 17); // **Failing in here!!!**
        mgr.refresh();
    });
}

function CreatePropertyMarker(lat, lng, id) {    
    var redIcon3 = {
        url: '../images/HouseIcon_ForGoogleMap.png',
        size: new google.maps.Size(22, 22),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(0, 22)
    };

    var marker3 = new google.maps.Marker(new google.maps.LatLng(lat, lng), redIcon3);

    google.maps.event.addListener(marker3, 'click', function () {

        var data = "{'Id': '" + id + "'}";
        $.ajax({
            type: "POST",
            dataType: "json",
            contentType: "application/json",
            url: 'searchresult.aspx/GetPropertyPopOut',
            data: data,
            success: function (data) {
                var popout = data.d;
                marker3.openExtInfoWindow(map, "custom_info_window_red", popout, { beakOffset: -1 });
            },
            error: function (result) {
                alert('status:' + result.status + '    statusText:' + result.statusText);
            }
         });
    });
    return marker3;
}
var marker3 = new google.maps.Marker(new google.maps.LatLng(lat, lng), redIcon3);
var marker3 = new google.maps.Marker({
    position: new google.maps.LatLng(lat, lng),
    icon: redIcon3
});