TL;DR
The acceptance criteria should be part of the feature story and be the basis for the test cases. There shouldn't be a separate test story, they might be a subtask of the story!
Long answer
Should the acceptance criteria for a user story form the basis for the test cases when testing that feature?
Of course they should be! You define which criteria have to be met, that the story fulfills its use case. These criteria should be tested to make sure the story is done. This means you have to implement different kinds of tests (unit tests, regression tests...).
Or, should there be a separate story for testing, whose acceptance criterion is that the feature being tested passes the relevant section of the function specification?
The Scrum guide is really clear about that, when defining the term "Done": "Each Increment is ... thoroughly tested, ensuring that all Increments work together." Meaning that the story is complete, when all tasks are done - including testing. So no extra story or even an extra team for that!
Example
What might the acceptance criteria be and how would this relate to the testing?
I modified your story example by removing implementation details, there should only be customer need described. The "Click-part" has been move to the acceptance criteria.
Story
As a user, I want to be able to display a map with the reported address marked, so that I can visualize where the event is occurring.
Acceptance criteria
- There is a button 'Show Map' to open the map view (Google maps)
- The reported address is marked on the map
- If there is no address marked, the button is disabled
- ...
These criteria should now be tested, try to think about sunshine scenarios and common errors - don't forget the edge cases.
I don't know your application, so I try to keep it generic. You have some kind of user tests, where a team mate clicks through the app and clicks the "Show Map" button (marked map appears). Another thing would be to make sure the google maps api is able to understand your address format (might be automated) or you tests whats happening if Google Maps is down. Furthermore you have some kind of unit tests, that might test what's happening when the address field is empty.