Bonjour,
Est-il possible d'utiliser l'api de geocoding de l'IGN (Geoportal.Layer.OpenLS.Core.LocationUtilityService) javascript, sans pour autant utiliser la carte IGN ?
J'ai testé plusieurs solutions, dont celle-ci :
Mais j'obtiens une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 window.onload= function() { alert('start'); gnSuccess= function(request) { alert('ok'); } gnFailure= function(request) { alert('ko'); } var geocodeLayer = new Geoportal.Layer.OpenLS.Core.LocationUtilityService( 'StreetAddress:OPENLS;Geocode',//layer name { maximumResponses:100, formatOptions: { }, // define your own picto instead of default: marker:"http://maps.gstatic.com/intl/fr_fr/mapfiles/ms/icons/blue-dot.png" } ); // Retrieve street, city and postal code : var v= OpenLayers.String.trim("3 rue montgrand, marseille"); if (v=='') { return false; } var scp= v.split(','); // last one is city // before-last is postal code if more than 2 fields // all other fields are joined for street if (scp.length<=1) { return false; } var city= OpenLayers.String.trim(scp.pop()); if (city=='') { return false; } var pc= ''; if (scp[scp.length-1].match(/[0-9]{5}/)) { pc= OpenLayers.String.trim(scp.pop()); } v= OpenLayers.String.trim(scp.join(',')); var s= new Geoportal.OLS.Street(); s.name= v; var sa= new Geoportal.OLS.StreetAddress(); sa.addStreet(s); var a= new Geoportal.OLS.Address(this.countryCode); a.streetAddress= sa; var p= new Geoportal.OLS.Place({ 'classification':'Municipality', 'name':city }); a.addPlace(p); a.postalCode= new Geoportal.OLS.PostalCode({'name':pc}); //send request to OpenLS service : geocodeLayer.GEOCODE( [a], { onSuccess: gnSuccess, onFailure: gnFailure }); a.destroy() a= null; };
Merci pour vos lumières sur le sujet.Uncaught TypeError: Cannot read property 'version' of null Geoportal.js:138
Partager