0

私は緯度と経度を持つ136をはるかに超える場所を持っており、基本的に、Javaスクリプト、かみそり、およびC#を使用して、適切な地図上に136の地図マーカーを作成しようとしています. 問題は、かみそりの JavaScript の一部が表示されないことです。すべてを正しく行っているかどうか知りたいです。

    var mapMarker;

    @{
        IEnumerable<UFA.Location.Core.Location> Location = UFALocation___Front.Helpers.QueryHelper.QueryHelper.getAllLocations();
        foreach(var loc in Location){
            <text>
                mapMarker = new google.maps.Marker({
                    position: new google.maps.LatLng(@loc.latitude, @loc.longitude),
                    map: map,
                    title: "Hello World!"
                });
            </text>
        }
    }

基本的に、すべての場所をループして緯度と経度を取得するだけです。問題は、for each の javascript が存在しないため、マーカーが表示されないことです。

以下の完全なスクリプト:

function success(position) {
        var s = document.querySelector('#status');

        if (s.className == 'success') {
            // not sure why we're hitting this twice in FF, I think it's to do with a cached result coming back    
            return;
        }

        s.innerHTML = "found you!";
        s.className = 'label label-success';


        var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
        var directionsService = new google.maps.DirectionsService();
        var directionsDisplay = new google.maps.DirectionsRenderer();

        var map = new google.maps.Map(document.getElementById('map'), {
            zoom: 15,
            center: latlng,
            mapTypeControl: false,
            navigationControlOptions: { style: google.maps.NavigationControlStyle.SMALL },
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });

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

        var mapMarker;

        @{
            IEnumerable<UFA.Location.Core.Location> Location = UFALocation___Front.Helpers.QueryHelper.QueryHelper.getAllLocations();
            foreach(var loc in Location){
                <text>
                    mapMarker = new google.maps.Marker({
                        position: new google.maps.LatLng(@loc.latitude, @loc.longitude),
                        map: map,
                        title: "Hello World!"
                    });
                </text>
            }
        }

        var SampleMarker = new google.maps.Marker({
            position: new google.maps.LatLng(51.379, -113.53),
            map: map,
            title: "Hello World!"
        }); 

        directionsDisplay.setMap(map);

        var request = {
            origin: latlng,
            destination: '304 304 26th ave sw calgary alberta',
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };

        directionsService.route(request, function (response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                directionsDisplay.setDirections(response);
            }
        });
    }

    function error(msg) {
        var s = document.querySelector('#status');
        s.innerHTML = typeof msg == 'string' ? msg : "failed";
        s.className = 'alert alert-error';

        // console.log(arguments);
    }

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(success, error);
    } else {
        error('not supported');
    }
4

0 に答える 0