WordPress.org

Ready to get started?Download WordPress

Forums

MapPress Easy Google Maps
Mappress API (8 posts)

  1. upyup
    Member
    Posted 3 years ago #

    Hi Chris and thanks for this excellent plugin of yours

    it works very very well when I'm using the shortcodes, anyhow I'd would like to use the API for some posts, unfortunately can't get it to display maps

    here is the code I've set


    $mymap = new Mappress_Map( array( 'width' => 600, 'height' => 450 ) );
    // si get_post_meta avec type = true, on recupere une chaine, sinon un array
    $address = get_post_meta($post->ID, 'adresse',false)
    $mypoi = new Mappress_Poi( array( 'address' => $address[0], 'title' => get_the_title($post->ID), 'body' => $address[0] ) );
    $mymap->pois = array($mypoi);
    $mymap->display();

    and there is the firebug console error


    a is null
    [Break on this error] za(Xd[A],function(){if(this.b){switch(...[A].Wa=function(a,b){this.d.Wa(a,b)};
    main.js line 26

    Seems like google API is waiting for some unset data ?

    I've tried to set a few more parameters as well and still get the same error

    Any hint ?

  2. chrisvrichardson
    Member
    Plugin Author

    Posted 3 years ago #

    Hi,

    I think that error may be because your address must be geocoded. You need to geocode the markers before you call display().

    Take a look at the geocode() function and also the save_post() function to see how to handle the goecoding results, along with google's documentation:
    http://code.google.com/apis/maps/documentation/geocoding/

    If you just want to display a map from addresses in a custom field - if you're patient, I'm currently working on adding this into the plugin itself, but it may be a while before I get it done.

  3. qwik3r
    Member
    Posted 3 years ago #

    How do I dynamically get the map's ID?

  4. swirvbox
    Member
    Posted 3 years ago #

    I also would love the ability to generate a map using the custom fields. I already have custom fields for address, city, state, zip.
    I tried to pass this to Mappress via:

    $street = get_post_meta($post->ID, 'address', true);
                    $city = get_post_meta($post->ID, 'city', true);
                    $state = get_post_meta($post->ID, 'state', true);
                    $zip = get_post_meta($post->ID, 'zip', true);
                    $address = $street.' '.$city.' '.$zip;

    ..then...

    $mymap = new Mappress_Map(array("width" => 425));
                                    $mypoi = new Mappress_Poi( array( 'address' => $address, 'title' => get_the_title($post->ID), 'body' => $address ) );
                                    $mypoi->geocode();
                                    $mymap->pois = array($mypoi);
                                    $mymap->display();

    Borrowed some of your code as well OP. :)
    But it does not work.
    BTW This plug-in kicks ass!

  5. swirvbox
    Member
    Posted 3 years ago #

    Ok.. I installed another plug-in that geocodes based on custom fields(address,stree,city,zip) and creates two new custom fields(lat,lgn). I tried using the code suggested on the MapPress page with both the data from these fields and manually substituting the actual lat and lgn. MapPress wouldnot display the map.
    So...

    $mymap = new Mappress_Map(array("width" => 425, "height" => 350));
    $mypoi = new Mappress_Poi(array( "point" => array("lat" => 34.0213670, "lng" => -81.3380449)));
    $mymap->pois = array($mypoi);
    $mymap->display();

    ..does not work.
    What are we doing wrong here?

  6. upyup
    Member
    Posted 3 years ago #

    well

    I have had a look at the geocode function and this is what I get when sending the datas directly to google through

    http://maps.google.com/maps/api/geocode/json?address=8bis avenue du palais des expositions, 66000 perpignan&sensor=false&output=json&region=FR&language=FR

    returns

    {
    "status": "OK",
    "results": [ {
    "types": [ "street_address" ],
    "formatted_address": "8 Avenue du Palais des Expositions, 66000 Perpignan, France",
    "address_components": [ {
    "long_name": "8",
    "short_name": "8",
    "types": [ "street_number" ]
    }, {
    "long_name": "Avenue du Palais des Expositions",
    "short_name": "Avenue du Palais des Expositions",
    "types": [ "route" ]
    }, {
    "long_name": "Perpignan",
    "short_name": "Perpignan",
    "types": [ "locality", "political" ]
    }, {
    "long_name": "Pyrénées-Orientales",
    "short_name": "66",
    "types": [ "administrative_area_level_2", "political" ]
    }, {
    "long_name": "Languedoc-Roussillon",
    "short_name": "Languedoc-Roussillon",
    "types": [ "administrative_area_level_1", "political" ]
    }, {
    "long_name": "France",
    "short_name": "FR",
    "types": [ "country", "political" ]
    }, {
    "long_name": "66000",
    "short_name": "66000",
    "types": [ "postal_code" ]
    } ],
    "geometry": {
    "location": {
    "lat": 42.7047338,
    "lng": 2.8932853
    },
    "location_type": "RANGE_INTERPOLATED",
    "viewport": {
    "southwest": {
    "lat": 42.7015923,
    "lng": 2.8901326
    },
    "northeast": {
    "lat": 42.7078876,
    "lng": 2.8964279
    }
    },
    "bounds": {
    "southwest": {
    "lat": 42.7047338,
    "lng": 2.8932752
    },
    "northeast": {
    "lat": 42.7047461,
    "lng": 2.8932853
    }
    }
    },
    "partial_match": true
    } ]
    }

    which seems absolutely perfect.

    So it should work with this php code:

    $mymap = new Mappress_Map( array( "width" => 600, "height" => 450 ) );
    var_dump($address);
    $mypoi = new Mappress_Poi( array( "title" => "", "body" => "", "point" => array("address" => $address[0]) ) );
    $mypoi->geocode( );
    $mymap->pois = array($mypoi);
    $mymap->display( );

    the var dump returns:

    array(1) { [0]=> string(63) "8bis, avenue du palais des expositions, 66000 Perpignan, France" }

    but my POI doesn't show up :(

    Any other hint ?

    Sincerely
    Olivier

  7. upyup
    Member
    Posted 3 years ago #

    Sorry, the proper php code should be:

    $mymap = new Mappress_Map( array( "width" => 600, "height" => 450 ) );
    $mypoi = new Mappress_Poi( array( 'address' => $address[0], 'title' => "", 'body' => $address[0] ) );
    $mypoi->geocode( );
    $mymap->pois = array($mypoi);
    var_dump($mymap->pois);
    $mymap->display( );

    The pois var dump returns:

    array(1) { [0]=> object(Mappress_Poi)#187 (8) { ["point"]=> array(2) { ["lat"]=> float(42.7047338) ["lng"]=> float(2.8932853) } ["title"]=> string(34) "8 Avenue du Palais des Expositions" ["titleUrl"]=> NULL ["body"]=> string(23) "66000 Perpignan, France" ["address"]=> string(63) "8bis, avenue du palais des expositions, 66000 Perpignan, France" ["correctedAddress"]=> string(59) "8 Avenue du Palais des Expositions, 66000 Perpignan, France" ["iconid"]=> NULL ["viewport"]=> array(2) { ["sw"]=> array(2) { ["lat"]=> float(42.7015923) ["lng"]=> float(2.8901326) } ["ne"]=> array(2) { ["lat"]=> float(42.7078876) ["lng"]=> float(2.8964279) } } } }

    which is lot better as the lat and lng datas are there...

    but still no map

  8. redyor
    Member
    Posted 3 years ago #

    Hi upyup,

    It took me a while realize that you forgot to put the echo before $mymap->display( ); and you can remove the var_dump($mymap->pois);

    It should look like the following :

    $mymap = new Mappress_Map( array( "width" => 600, "height" => 450 ) );
    $mypoi = new Mappress_Poi( array( 'address' => $address[0], 'title' => "", 'body' => $address[0] ) );
    $mypoi->geocode( );
    $mymap->pois = array($mypoi);
    echo $mymap->display( );

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic