Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  14 3474
Hei, jeg har laget en nettisde på min egen server med Google maps kartet. Jeg har fått nøkkel fra google og importert dette kartet uten problem.

På den andre siden ønsker jeg å importere en haugevis med lokasjoner som jeg har i JSON fil på pcen, slik at dette kommer på Google maps kartet mitt, jeg kunne fint henta ut alle lokasjonene fra JSON fila og satt dem manuelt inn i min index.php(her ligger kartet), men dette ville tatt veldig lang tid. Derfor ønsker jeg å importere direkte fra JSON fil.

Noen som har erfaring med dette og kan hjelpe meg? Dersom ønskelig kan jeg legge kodesnutt fra index.php filen min.

Takk
Sitat av haxxor Vis innlegg
Vis hele sitatet...
Den har jeg allerede lest igjennom, men kan ikke si den hjalp så mye da det handler om å importere json fra en link, jeg trenger å importere en json fil lokalt på pcen her.
Lag et endepunkt som returnerer JSON filen og behandle det som en link, som i tutorialen til haxxor. Edit: kan ikke tenke meg dette er beste måten å løse det på, men det funker.
Sist endret av Xasma; 2. februar 2018 kl. 17:24.
Sitat av Xasma Vis innlegg
Lag et endepunkt som returnerer JSON filen og behandle det som en link, som i tutorialen til haxxor. Edit: kan ikke tenke meg dette er beste måten å løse det på, men det funker.
Vis hele sitatet...
Nå har jeg gjort akkurat slik som haxxor og du anbefalte, lastet opp JSON fila på en server og henter det via link, men får fortsatt ikke opp coordinatene i google maps.. Feilmeldingen jeg får(og som jeg har forsøkt og google) er:

https://imgur.com/a/7MwOD
Har du data eller et script i chargers.json?

Hvordan ser dataene og scriptet ditt ut om jeg tør spørre... ?
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av cplpro Vis innlegg
Nå har jeg gjort akkurat slik som haxxor og du anbefalte, lastet opp JSON fila på en server og henter det via link, men får fortsatt ikke opp coordinatene i google maps.. Feilmeldingen jeg får(og som jeg har forsøkt og google) er:

https://imgur.com/a/7MwOD
Vis hele sitatet...
Det står jo i klartekst at problemet er at det er gal mime-type som vert servert!

Host fila ein plass det .json får korrekt mime-type (application/javascript,text/javascript eller noko i den duren).

Det å ha kjennskap til mime types er jo web development 101...
Sitat av aNullDevice Vis innlegg
Har du data eller et script i chargers.json?

Hvordan ser dataene og scriptet ditt ut om jeg tør spørre... ?
Vis hele sitatet...
Jeg har lastet opp JSON fila opp på min github her:

https://raw.githubusercontent.com/vl...hargersSS.json

Om ønskelig kan jeg også sende deg min index.php med kartet, bare send meg privat pm
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av cplpro Vis innlegg
Jeg har lastet opp JSON fila opp på min github her:

https://raw.githubusercontent.com/vl...hargersSS.json

Om ønskelig kan jeg også sende deg min index.php med kartet, bare send meg privat pm
Vis hele sitatet...
For det første... har du vurdert om det er hensiktsmessig å laste 11.8MB JSON klientside? Eller er det meir hensiktsmessig å gruppere det, slik mange kart gjer, på høgt utzooma nivå, og dynamisk laste det folk zoomer inn på?

For det andre bør du åpenbart legge ut kjeldekoden din her om du ønsker hjelp. Det er mange, inkludert meg, som ikkje gidd sende deg PM. Det er du som vil ha hjelp, kvifor skal vi anstrenge oss for å hjelpe deg?

For det tredje så er feilmeldinga di over veldig rett fram. Feil mime-type. Det kan vi enkelt sjekke:

Kode

[~]$ curl -I "https://raw.githubusercontent.com/vlori2k/chargers/master/chargersSS.json" 
HTTP/1.1 200 OK
Content-Security-Policy: default-src 'none'; style-src 'unsafe-inline'; sandbox
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
ETag: "19d239f6b41b264b26b3f99027202f8bc098e5ec"
Content-Type: text/plain; charset=utf-8
Cache-Control: max-age=300
[...]
Det vert altså sendt som text/plain. Det er feil. Den relevante internett-standarden seier at rett type er application/javascript. T.d. denne Q&Aen på SO tar for seg feilmeldinga du får - og sikkert ein halv million andre sider også...
Sist endret av vidarlo; 5. februar 2018 kl. 21:23.
Sitat av cplpro Vis innlegg
Nå har jeg gjort akkurat slik som haxxor og du anbefalte, lastet opp JSON fila på en server og henter det via link, men får fortsatt ikke opp coordinatene i google maps.. Feilmeldingen jeg får(og som jeg har forsøkt og google) er:

https://imgur.com/a/7MwOD
Vis hele sitatet...
Når jeg sier endepunkt mener jeg selvfølgelig på din server, å bare laste den opp et tilfeldig sted er helt merkelig. Dersom siden din er www.cpl.pro bruker du rammeverket ditt til å lage en side www.cpl.pro/lastinnjson som returnerer json filen.

Men jeg er enig med vidarlo, om den er på 11,8MB ville jeg sett på måter for å redusere størrelsen.
Ønsker du å laste fila lokalt fra så kan du gjøre noe sånt:

Kode

<script>
  var jsonData = <?php echo file_get_contents('./sti/til/json'); ?>;
</script>
Github sender alt som plain-text btw.
Sist endret av Yochi; 6. februar 2018 kl. 09:40.
Jeg har fått dette til nå, en av tingene jeg gjorde var å gjøre om JSON filen til js fil
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av cplpro Vis innlegg
Jeg har fått dette til nå, en av tingene jeg gjorde var å gjøre om JSON filen til js fil
Vis hele sitatet...
...men har du forstått kvifor det var relevant?
Sitat av vidarlo Vis innlegg
...men har du forstått kvifor det var relevant?
Vis hele sitatet...
Ja.

Det skal også nevnes at jeg måtte endre litt i på for each løkka også, slik at den fikk hentet ut den verdien fra json filen som jeg ønsker.

min index.php:

Kode

 

<!DOCTYPE html>
<html>
<head>
    <style>
     
        #map {
            height: 600px;
			width: 800px;
        }
    
      
    </style>
</head>
<body>
<h3> Chargers in Oslo <h3>

<div id="map"></div>
<script>
    var map;

   
    function initMap() {

        map = new google.maps.Map(document.getElementById('map'), {
            zoom: 12,
            center: new google.maps.LatLng(59.911491,10.757933),
            
        });

   
        var script = document.createElement('script');
        script.src = 'chargers.js';
        document.getElementsByTagName('head')[0].appendChild(script);
    }


    window.eqfeed = function(results) {
        for (var i = 0; i < results.chargerstations.length; i++){
            //i++;
            var coords = results.chargerstations[i].csmd.Position;
            //coords ="(123123, 123123)"
            coords = coords.replace('(', '');
            coords = coords.replace(')', '');
            coords = coords.split(",");

            var destenasjon = results.chargerstations[i].csmd.City;
            console.log("PPP",destenasjon);

            console.log(coords);
            var latLng = new google.maps.LatLng(coords[0],coords[1]);
            if(destenasjon === 'OSLO'){
                var marker = new google.maps.Marker ({
                    position: latLng,
                    map: map,
                    icon: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
                });

            }else{
                marker = new google.maps.Marker({
                    position: latLng,
                    map: map
                });
            }


        }
    }


</script>
<script async defer
        src="https://maps.googleapis.com/maps/api/js?key=MINAPIKEY&callback=initMap">
</script>
</body>
</html>
Sist endret av cplpro; 7. februar 2018 kl. 11:59.